martes, 22 de abril de 2014

Data Binding con C# directamente en el Code Behind

Trabajar con Data Binding directamente en XAML es algo bastante trivial, aunque también puede dar algún que otro quebradero de cabeza. En cualquier caso, no es la única forma de hacerlo puesto que siempre podemos recurrir al data binding desde el code behind directamente.


Esto último quizás no sea muy recomendable cuando estamos trabajando con patrones de diseño como puede ser el MVVM por razones obvias propias del patrón, pero que no sea recomendable no significa que no podamos hacerlo o incluso que no sea conveniente hacerlo en determinados casos.


El enlace a datos en C# y desde el code behind lo podemos hacer de muchas formas, aquí voy a exponer una (a modo de concepto) que he utilizado recientemente.


El escenario es sencillo. Se tiene un control Grid al que queremos enlazar su propiedad Visibility con una propiedad de una clase de datos. Aquí podéis ver un extracto de código en donde se realiza la parte del DataBinding propiamente dicha:

 // Se crea la instancia de la clase Binding
 System.Windows.Data.Binding binding = new System.Windows.Data.Binding();
 // Se asigna la fuente de datos que contiene la propiedad a enlazar
 binding.Source = customersVM;
 // Se indica la propiedad que se va a enlazar de la clase de datos
 binding.Path = new PropertyPath("ShowCustomers");
 // Se indica el modo de enlace, en este caso TwoWay
 binding.Mode = System.Windows.Data.BindingMode.TwoWay;
 // En este caso, además se hace uso de un Conversor de Booleano a Visibility
 binding.Converter = new ViewModel.BoolToVisibilityConverter();
 // Además se utiliza un parámetro para el conversor
 binding.ConverterParameter = true;
 // Y finalmente se asocia el Binding con el grid
 grid.SetBinding(Grid.VisibilityProperty, binding);


Espero que le sea útil a mas de uno ... y de dos.

No hay comentarios:

Publicar un comentario