Buenas gente.
Hoy quiero hablarles un poquito de este recurso de Silverlight que de verdad me ha sacado de apuros en muchas ocasiones y que tanta funcionalidad le da a nuestras aplicaciones.
No pretendo hacer un tutorial, sino solo un pequeño comentario de lo mucho que IValueConverter puede hacer.
IValueConverter es una "Interfaz" que brinda la posibilidad de que podamos agregar cierta lógica (condiciones, decisiones) con los enlaces que hagamos, particularmente en Xaml.
Consiste básicamente en que cuando hagamos una "Binding" en nuestro Xaml, podamos antes de que se haga el render manipular el dato y regresar (Return) un valor de diferente tipo o formato.
Por ejemplo, si estamos enlazando el campo "sexo" a un TextBox, pero en nuestra base de datos nosotros guardamos 0 para hombre y 1 para mujer, entonces si dejamos el enlace tal cual, esos valores son los que mostrará, pero si lo enlazamos ademas con el converter, pues en la logica de este podemos decirle que haga un return de "H" cuando el valor pasado sea 0 y que regrese "M" cuando el valor sea 1, asi de sencillo.
En el XAML.
<TextBox Text="{Binding sexo, Converter={StaticResource sexoConv}}"/>
con esto hacemos el binding y ademas asignamos el converter "sexoConv"
En la Interface
Public Class convertidorSexo
Implements IValueConverter
Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.Convert
If value = 0 Then
Return "H"
Else
Return "M"
End If
End Function
Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.ConvertBack
End Function
End Class
En lo personal he utilizado esta interfaz para cambiar color de celdas, tamaño de fuentes, asignar una u otra imagen (Aplicaciones con semáforo), cambiar color a la fila de un DataGrid en dependencia de un valor.
Bueno espero esto pueda dar una idea de lo que podemos lograr con la Interface IValueConverter.
Y ustedes en que circunstancias lo han usado?
Converted by Smashing Blogger for LiteThemes.com.