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.

domingo, 13 de abril de 2014

Nivel Técnico en Cursos, Charlas, Material ... de Microsoft

Cuando realizamos un curso o asistimos a una charla, webcast, etc. de Microsoft, es muy importante tener en cuenta el nivel técnico indicado en cada uno de estos eventos. Y es importante, porque no es muy recomendable realizar un curso de nivel 400, si se tiene por ejemplo un nivel 100 sobre el tema que trata dicho curso.

Por esto, es necesario saber cuál es exactamente el estándar que define cada uno de estos niveles y actuar en consecuencia.

A continuación tenemos la definición de cada uno de los niveles (100, 200, 300 y 400):

Nivel 100: Este es el nivel de introducción y como tal se requerirá poca experiencia o ninguna. En este nivel se tratarán conceptos, funciones, características y beneficios sobre el tema en cuestión.

Nivel 200: Este es el nivel medio. Supone un conocimiento de nivel 100 proporcionando además detalles más específicos sobre el tema.

Nivel 300: Se trata de un nivel avanzado. Da por echo que se cuenta con el conocimiento de un nivel 200 y una comprensión en profundidad de las características en un entorno real, así como una sólida habilidad en programación. Proporciona una introducción técnica detallada de un subconjunto de características de producto/tecnología que van desde la arquitectura, rendimiento, migración, implementación o despliegue y desarrollo.

Nivel 400: El nivel de los expertos. Aquí se tratará con material de muy alto nivel técnico y como tal requiere un nivel profundo de conocimientos, así como experiencia y una gran comprensión sobre el tema. Proporciona interacción de experto a experto y trata temas especializados.


Pues nada, a partir de ahora cuando asistas a una charla o leas un documento en el que se incluya el nivel técnico requerido, ya sabrás de que se trata.