在集合中公开的模型中实现INotifyPropertyChanged

时间:2013-03-22 13:41:43

标签: c# wpf mvvm mvvm-light

我在一个用DataTemplate设计的ObservableCollection中暴露了一个Model类,其中处理了Model的proeprty绑定。

当我手动在Model类中实现INotifyPropertyChanged接口时,ObservableCollection中的绑定proeprty不会自动更改,但仅在重新呈现集合后才会更改。

当我从ViewModelBase(一个MVVM Light工具包类)继承并使用RasiePropertyChanged方法时,绑定属性会自动更改而不刷新整个集合。

ViewModelBase除了实现INotifyPropertyChanged接口外还做了什么?

1 个答案:

答案 0 :(得分:9)

MVVM Light Toolkit中的ViewModelBase为您提供了一些额外的帮助,例如IsInDesignModeMessengerInstance

以及实施INotifyPropertyChanged

现在在模型中,如果您只想实施INotifyPropertyChanged而不是尝试自己做,只需从ObservableObject

派生

ObservableObject也来自MVVM Light工具包,它只进行INPC实现而没有修剪,使其成为模型的完美之选。

如果您在Visual Studio中查看ViewModelBase的定义,它会继承ObservableObject本身