我是WPF MVVM的新手。
实现INotifyPropertyChanged接口后,会添加一个事件:
public event PropertyChangedEventHandler PropertyChanged;
根据我的理解,“PropertyChangedEventHandler”是一个委托,所以我想了解订阅这个委托的方法是什么?
答案 0 :(得分:0)
INotifyPropertyChanged为您提供:
public event PropertyChangedEventHandler PropertyChanged;
然后您可以添加OnPropertyChanged方法以在属性更改时进行处理:
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
var e = new PropertyChangedEventArgs(propertyName);
handler(this, e);
}
}
那么,当您想要通知属性已更改时,您可以从属性的set方法本身调用OnPropertyChanged。在这个例子中,ShowRock是一个属性,当它改变时(通过setter),它让世界知道它发生了变化:
public bool ShowRock
{
get { return _showRock; }
set
{
_showRock = value;
OnPropertyChanged("ShowRock");
}
}