sábado, 28 de julio de 2018

El extraño caso de MessagingCenter en Xamarin.Forms

Utilizando MessagingCenter en un proyecto Xamarin.Forms me encontre con algunos comportamientos no deseados, para verificarlos cree un proyecto muy sencillo en el cual pude reproducir el problema, basicamente, se seguia enviando el mensaje a instancias anteriores de la clase que se subscribia

Envie la consulta al foro de xamarin en donde me comentaron que una posible solucion era utilizar el subscribe / unsubscribe en los overrides de los eventos OnAppearing / OnDisappearing
Esto funciono perfectamente, el codigo de ejemplo se encuentra en este repo de github

La documentacion para mi gusto no deja suficientemente claro la necesidad del unsubscribe, ya que yo asumi que la instancia subscripta al cerrar la vista desapareceria, pero al parecer, la referencia del subscribe la mantiene en memoria y sigue recibiendo los mensajes

sábado, 7 de julio de 2018

Xamarin Forms, intellisense para nuestros viewmodels dentro de la vista

En un proyecto Xamarin.Forms con Visual Studio 2017 al momento de editar el archivo XAML para una vista, nos resulta mas facil trabajar si podemos utilizar intellisense para acceder a la informacion de nuestro binding context

En la siguiente imagen, podemos ver que intellisense no posee suficiente informacion para encontrar el tipo utilizado en el binding context para la vista


Estableciendo el binding context en el archivo XAML para la vista (1 y 2) tendremos acceso a las propiedades de nuestro ViewModel (3)