Установите BindingContext для ViewModel в XAML на Xamarin.Forms
Я хочу разработать простой проект с Xamarin.Form и MVVM. В моем решении (названном XamarinPOC) у меня есть (в дополнение к стандартным проектам Xamarin.Forms) один отдельный проект для модели (XamarinPOC.Model) и один отдельный проект для ViewModel (XamarinPOC.ViewModel).
Я определил в проекте XamarinPOC.ViewModel абстрактный класс для класса BaseViewModel (который реализует интерфейс INotifyPropertyChanged), и после того, как я создал класс SummaryViewModel, который расширяет класс BaseViewModel простым свойством:
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(){}
}
}
Затем я создал простой ContentPage (SummatyView) в проекте XamarinPOC, который содержит только метку, которую я хочу, чтобы показать текст, определенный в ViewModel. Я хочу использовать XAML для определения представления и привязки, но когда я запускаю приложение, ничего не отображается, у меня нет ошибок во время компиляции и во время выполнения, но текст не отображается. Мой XAML это
<?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>
и, наконец, мой app.cs:
namespace XamarinPOC
{
public class App : Application
{
public App()
{
MainPage = new Summary();
}
}
}
В проекте XamarinPOC я добавил ссылку на сборки XamarinPOC.ViewModel и XamarinPOC.Model.
Я думаю, что проблема в определении привязки XAML, но я не нахожу ошибку. Где я не прав?