Ваш класс должен выглядеть примерно так:
public class Person : INotifyPropertyChanged
{
private string nameValue = string.Empty;
public event PropertyChangedEventHandler PropertyChanged;
public string Name
{
get
{
return nameValue;
}
set
{
if (value != nameValue)
{
nameValue = value;
NotifyPropertyChanged();
}
}
}
// This method should be called by the Set accessor of each property.
private void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
Обратите внимание, как он реализует интерфейс INotifyPropertyChanged
и вызывает правильный метод всякий раз, когда устанавливается значение.В противном случае пользовательский интерфейс не будет обновляться.
Теперь, чтобы связать ваше значение, сделайте это в XAML, где-то на вашей странице: <Label Text="{Binding Name}" />
.Наконец, вы должны установить свойство BindingContext
вашей страницы, например так:
public MyPage : ContentPage
{
public MyPage()
{
var person = new Person();
person.Name = "Bert";
BindingContext = person;
person.Name = "Ernie";
}
}
Чтобы извлечь шаблонный код и вызвать метод PropertyChanged
для каждого свойства, взгляните на PropertyChanged.Fody плагин .