如何实施财产变更通知

时间:2014-10-03 20:16:50

标签: c# wpf mvvm

在MVVM中,我应该如何在ViewModel类或Model类中实现INotifyPropertyChanged接口?如果在ViewModel中实现了INotifyPropertyChanged接口,如何处理模型的属性更改事件?

1 个答案:

答案 0 :(得分:3)

首先,您始终在您的视图模型中实现它,因为当您在视图模型中更新数据时,框架使用该接口来更新UI。

可以在模型中实现它,但这绝不是必需的。如果模型正在从您下面改变,您可以(并且可能应该)轻松地提升您自己的(语义上更清晰的)视图模型监听的事件,以便更新其数据。

实际实现应如下所示(MSDN):

    private void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
    {
        var handler = PropertyChanged;
        if (handler != null)
        {
            handler(this, new PropertyChangedEventArgs(propertyName));
        }
    }