Silverlight 4 Nuevas Características – StringFormat DataBinding - Blog de Oskar Alvarez

Silverlight 4 Nuevas Características – StringFormat DataBinding

El Databinding de esta nueva versión se parece cada vez mas al databinding de WPF siendo cada vez mas potente. En las versiones anteriores vimos que si queríamos formatear una fecha o un decimal debíamos utilizar converters de los que ya hable en este post. En esta versión se ha implementado la propiedad StringFormat en los Binding.

Imaginemos que tenemos la clase Persona

 

   1:   public class Persona
   2:      {
   3:          public string Nombre { get; set; }
   4:          public string Apellidos { get; set; }
   5:          public DateTime FechaNacimiento { get; set; }
   6:          public string CorreoElectronico { get; set; }
   7:          public string Direccion { get; set; }
   8:      }

Ahora el Xaml en el que mostramos los datos sería

 

   1:  <Grid x:Name="LayoutRoot" Background="White" Height="160" VerticalAlignment="Top" Width="320">
   2:          <Grid.ColumnDefinitions>
   3:              <ColumnDefinition></ColumnDefinition>
   4:              <ColumnDefinition></ColumnDefinition>
   5:          </Grid.ColumnDefinitions>
   6:          <Grid.RowDefinitions>
   7:              <RowDefinition></RowDefinition>
   8:              <RowDefinition></RowDefinition>
   9:              <RowDefinition></RowDefinition>
  10:              <RowDefinition></RowDefinition>
  11:              <RowDefinition></RowDefinition>
  12:              <RowDefinition></RowDefinition>
  13:          </Grid.RowDefinitions>
  14:   
  15:          <TextBlock x:Name="FirstNameTextBlock" Grid.Row="0" Grid.Column="0"     Text="Nombre:" FontWeight="Bold">
  16:          </TextBlock>
  17:          <TextBlock x:Name="FirstNameValueTextBlock" Grid.Row="0" Grid.Column="1"     Text="{Binding Nombre}" ></TextBlock>
  18:          <TextBlock x:Name="LastNameTextBlock" Grid.Row="1" Grid.Column="0" Text="Apellidos:" FontWeight="Bold"></TextBlock>
  19:          <TextBlock x:Name="LastNameValueTextBlock" Grid.Row="1" Grid.Column="1" Text="{Binding Apellidos}"></TextBlock>
  20:          <TextBlock x:Name="AddressTextBlock" Grid.Row="3" Grid.Column="0"     Text="Direccion:" FontWeight="Bold"></TextBlock>
  21:          <TextBlock x:Name="AddressValueTextBlock" Grid.Row="3" Grid.Column="1"     Text="{Binding Direccion, TargetNullValue=Desconocida}" ></TextBlock>
  22:          <TextBlock x:Name="BirthDateTextBlock" Grid.Row="2"     Grid.Column="0" Text="Fecha Nacimiento:" FontWeight="Bold"></TextBlock>
  23:          <TextBlock x:Name="BirthDateValueTextBlock" Grid.Row="2" Grid.Column="1"     Text="{Binding FechaNacimiento, StringFormat=dd/MM/yyyy}"></TextBlock>
  24:          <TextBlock x:Name="EmailTextBlock" Grid.Row="4" Grid.Column="0" Text="Email:" FontWeight="Bold"></TextBlock>
  25:          <TextBlock x:Name="EmailValueTextBlock" Grid.Row="4" Grid.Column="1" Text="{Binding CorreoElectronico}"></TextBlock>
  26:      </Grid>

 

Si os fijáis en el Binding de Fecha Nacimiento podéis ver que la fecha tiene el formato  de dd/MM/yyyy evitándonos el converter, además también podeos ver en el binding de dirección que cuando sea nulo se muestre la palabra Desconocida

Solo nos queda el código c# para el binding

   1:   public MainPage()
   2:          {
   3:              InitializeComponent();
   4:              Persona p = new Persona
   5:                  {
   6:                      Nombre = "Oscar",
   7:                      Apellidos = "Alvarez Guerras",
   8:                      FechaNacimiento = new DateTime(1971, 6, 29),
   9:                      CorreoElectronico = "bialguos@gmail.com"
  10:                  };
  11:              DataContext = p;
  12:          }

 

El resultado

 

image

Published 15/1/2010 14:36 por Oskar Alvarez
Archivado en:
Comparte este post:
http://geeks.ms/blogs/oalvarez/archive/2010/01/15/silverlight-4-nuevas-caracter-237-sticas-stringformat-databinding.aspx

Comentarios

# Silverlight 4 Nuevas Características – StringFormat DataBinding

El Databinding de esta nueva versión se parece cada vez mas al databinding de WPF siendo cada vez mas

Friday, January 15, 2010 3:08 PM por .NET con oskar

# re: Silverlight 4 Nuevas Características – StringFormat DataBinding

Ya era hora que pusieran esa funcionalidad :) Silverlight va cogiendo forma...

Saturday, January 16, 2010 5:27 PM por jbosch