Defina BindingContext como ViewModel no XAML no Xamarin.Forms
Quero desenvolver um projeto simples com o Xamarin.Form e o MVVM. Na minha solução (chamada XamarinPOC), tenho (além dos projetos Xamarin.Forms padrão) um projeto separado para o modelo (XamarinPOC.Model) e um projeto separado para o ViewModel (XamarinPOC.ViewModel).
Eu defini em um projeto XamarinPOC.ViewModel uma classe abstrata para uma classe BaseViewModel (que implementa a interface INotifyPropertyChanged) e depois de criar uma classe SummaryViewModel que estende a classe BaseViewModel com uma propriedade simples:
namespace XamarinPOC.ViewModel
{
public class SummaryViewModel : BaseViewModel
{
private string _test = "The binding is OK!";
public String test
{
get
{
return _test;
}
set
{
_test = value;
OnPropertyChanged("test");
}
}
public SummaryViewModel(){}
}
}
Em seguida, criei um ContentPage simples (SummatyView) em um projeto XamarinPOC que contém apenas um rótulo que eu quero mostrar o texto definido no ViewModel. Desejo usar um XAML para definir a Visualização e a associação, mas quando executo o aplicativo, nada é exibido, não há erros no tempo de compilação e no tempo de execução, mas o texto não é exibido. Meu XAML é esse
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:XamarinPOC.ViewModel,assembly=XamarinPOC.ViewModel"
x:Class="XamarinPOC.Summary"
Title="Summary List"
BindingContext="XamarinPOC.ViewModel.SummaryViewModel">
<StackLayout>
<Label Text="{Binding test}"/>
</StackLayout>
</ContentPage>
e finalmente meu app.cs é:
namespace XamarinPOC
{
public class App : Application
{
public App()
{
MainPage = new Summary();
}
}
}
No projeto XamarinPOC, adicionei uma referência aos assemblies XamarinPOC.ViewModel e XamarinPOC.Model.
Acho que o problema está na definição de ligação XAML, mas não encontro o erro. Onde eu estou errado?