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

Gio*_*der 1 c# wpf mvvm mvvm-light

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

当我手动在Model类中实现INotifyPropertyChanged接口时,ObservableCollection中的绑定proeprty不会自动更改,而只是在重新呈现集合之后.

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

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

Viv*_*Viv 9

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

随着实施 INotifyPropertyChanged

现在在一个模型中,如果你只想实现INotifyPropertyChanged而不是试图自己做,只需从中派生出来ObservableObject

ObservableObject 也是来自MVVM Light工具包,它只在没有修剪的INPC实现中使其成为模型的完美选择.

如果查看ViewModelBaseVisual Studio 中的定义,它将继承ObservableObject自身