IValueConverter Silverlight 5

28 de marzo de 2014

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?

Gracias por tu comentario...

Lenín Casco

Blog Informático