Alinear a la Derecha Columna DataGrid Silverlight

Saludos amig@s en esta ocación haremos un ejemplo práctico que les puede ayudar cuando esten utilizando el DataGrid de Silverlight esque por ahy algún Usuario que valida el Sistema les dice "Esos son Datos son Numericos y deben estar alineados a la Derecha!!" pucha, entonces rapidamente, podriamos implementar lo siguiente:

Primero veamos como se ve nuestra Grilla el codigo XAML antes de Aplicarle el Estilo, debemos tomar en cuenta que el Atributo del DataGrid "AutoGenerateColumns" en este caso debe estar establecido con False, ya que mas abajo estamos creando cada una de las Columnas.


sdk:DataGrid AutoGenerateColumns="False" Height="142" Width="500" Name="dgProductos"  VerticalAlignment="Top" Loaded="dgProductos_Loaded" >
            <sdk:DataGrid.Columns>
               
<sdk:DataGridTextColumn Header="Producto" Binding="{Binding Producto}" />
<sdk:DataGridTextColumn Header="Precio Producto"  Binding="{Binding Precio}" />

            </sdk:DataGrid.Columns>
</sdk:DataGrid>


Vemos las 2 Columnas Producto y Precio, que solo tienen un Binding, pero aqui falta la Clase que Llenará los con datos esta Grilla.

using System;

namespace Ejm01
{
    public class clsProducto
    {
        public String Producto { get; set; }
        public Decimal Precio{ get; set; }       
    }
}


Listo Luego en el Evento Loaded del Data, lo cargamos de Datos:

private void dgProductos_Loaded(object sender, RoutedEventArgs e)
{
List<clsProducto> listProductos = new List<clsProducto>();
listProductos.Add(new clsProducto() { Producto = "Zapatos", Precio =  5425.12M });
listProductos.Add(new clsProducto() { Producto = "Mochila", Precio = 25435.12M });
listProductos.Add(new clsProducto() { Producto = "Camisa", Precio = 12320.12M});
listProductos.Add(new clsProducto() { Producto = "Reloj", Precio = 8128.12M});
listProductos.Add(new clsProducto() { Producto = "Medias", Precio = 1212.15M });
listProductos.Add(new clsProducto() { Producto = "Corbatas", Precio = 1445.10M });
  dgProductos.ItemsSource = listProductos;
}


Ejecutamos la aplicacion y Veremos queLa Columna de Precio está alineado a la Izquierda y esto no es muy agradable para los Usuarios ya que por lo General los Montos van Alineados a la Derecha.


Ahora cambiemo el codigo XAML, como sigue para que la Columna Precio este alineado a la Derecha.
<sdk:DataGrid AutoGenerateColumns="False" Height="142" Width="500" Margin="12,86,12,0" Name="dgProductos"  VerticalAlignment="Top" Loaded="dgProductos_Loaded">
<sdk:DataGrid.Columns>
               
 <sdk:DataGridTextColumn Header="Producto" Binding="{Binding Producto}" />
               
  <sdk:DataGridTextColumn Header="Precio  Producto"  Binding="{Binding Precio}" >
       <sdk:DataGridTextColumn.CellStyle >
           <Style TargetType="sdk:DataGridCell">
                <Setter Property="HorizontalAlignment" Value="Right" />
           </Style>
       </sdk:DataGridTextColumn.CellStyle>
 </sdk:DataGridTextColumn>

</sdk:DataGrid.Columns>
</sdk:DataGrid>


La Seccion Amarilla representa solo a la Columna Precio, si tuvieramos mas Columnas para Alinear a la Derecha, hariamos lo mismo para las demas. Bueno solo nos queda ejecutar la aplicación.



Gracias y espero les sirva en sus Aplicaciones Silverlight, hasta pronto!!

Comments

Popular posts from this blog

Error al Iniciar Oracle SQL Developer 11g - Unable to find Java Virtual Machine

Como Mantener el Scroll despues de un PostBack ASP.net ( As Maintain Scroll after a PostBack ASP.net )

How to run ng serve in a different port
Como ejecutar ng serve en un puerto diferente