在MVVM中,我应该如何在ViewModel类或Model类中实现INotifyPropertyChanged接口?如果在ViewModel中实现了INotifyPropertyChanged接口,如何处理模型的属性更改事件?
答案 0 :(得分:3)
首先,您始终在您的视图模型中实现它,因为当您在视图模型中更新数据时,框架使用该接口来更新UI。
你可以在模型中实现它,但这绝不是必需的。如果模型正在从您下面改变,您可以(并且可能应该)轻松地提升您自己的(语义上更清晰的)视图模型监听的事件,以便更新其数据。
实际实现应如下所示(MSDN):
private void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
{
var handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(propertyName));
}
}