问题描述
public class MainCar: INotifyPropertyChanged
{
string typeCar;
public string TypeCar
{
set
{
if (typeCar != value)
{
typeCar = value;
OnPropertyChanged("TypeCar");
}
}
get
{
return typeCar;
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this,new PropertyChangedEventArgs(propertyName));
}
}
在我的Xaml代码中,我有一个标签,但我不明白如何将我的Label的文本绑定到对象的属性TypeCar
XAML代码
<Label x:Name="label" FontSize="Large" Text="" />
隐藏代码
public Car_add()
{
NavigationPage.SetHasNavigationBar(this,false);
InitializeComponent();
this.BindingContext = new TypesCar();
}
viewmodeL类别
公共类TypesCar {
public TypesCar()
{
var vm = new MainCar() { TypeCar = "Ford" };
}
解决方法
这很好documented
<Label x:Name="label" FontSize="Large" Text="{Binding TypeCar}" />
然后在后面的代码中
var vm = new MainCar() { TypeCar = "Ford" };
this.BindingContext = vm;
或者,如果您要绑定到“同一页面”上的某个属性,而不是一个VM,则
this.BindingContext = this;
请注意,如果您希望UI随着VM的更改而更新,则VM必须实现INotifyPropertyChanged