5.31.2016

Databinding en Xamarin - parte 1: XAML

El databinding en Xamarin se puede llevar a cabo de dos formas: desde el "code behind" o desde el XAML. Para llevarlo a cabo desde el "code behind" se establece la relación entre dos objetos - la fuente y el destino de los datos - donde la propiedad BindingContext del objeto destino debe de tener establecido el objeto fuente o una de sus propiedades. La propiedad del objeto destino debe de ser "bindeable" lo que significa que debe de heredar de BindableObject. En XAML se utilizan los brackets {} para establecer el objeto o propiedad del objeto fuente - despues de establecer el BindingContext.

Ejemplo

En la primera parte de esta seria de post acerca del databinding vamos a llevar a cabo un ejemplo sencillo desde el markup de XAML.   
Vamos a crear un proyecto multiplataforma en Xamarin Studio y vamos a agregar una nueva pantalla la que llamaremos pantalla principal. Esta a su vez la vamos a instanciar desde un NavigationPage para permitir la navegación entre pantallas.










Luego vamos a crear una clase POCO para almacenar los datos obtenidos (esta vez desde el código, pero puede ser desde una BD, un servicio, un blob, etc) Esta clase tiene la siguiente estructura.























Ahora en el XAML del MainPage vamos a crear el binding del objeto. Para crear el binding se utilizan los brackets y el nombre de la propiedad que se desea "ligar" a la propiedad del control destino tal y como se ve en la siguiente figura.













Ahora vamos a crear un metodo en la clase MainPage que nos devuelva un objeto Proyecto ya instanciado el cual vamos a invocar desde el constructor de la clase. Por último asignamos al BindingContext el objeto retornado por el método recién creado.


















Ahora procedemos a ejecutar el aplicativo y el resultado de esta ejecución se puede ver en la siguiente figura.