.net - 在MVVM模型中,模型应该实现INotifyPropertyChanged接口,.NET?

  显示原文与译文双语对照的内容
129 2

我在 MVVM Pattern 中对 ViewViewModel 有清楚的了解。我计划在我的应用程序中实现 MVVM Pattern 。我遇到了关于这个模型的问题。我有. xml 文件,它解析并显示视图上的信息。

我需要得到关于模型中的更改的通知,仅在第一次。从onwards开始我需要得到通知。

那么如何实现这个模型?

我是否应该在模型类中实现 INotifyPropertyChanged 接口?( 我读到该模型不应该实现 INotifyPropertyChanged 接口,因为它是WPF特定的)

时间:原作者:0个回答

76 3

在模型中实现 INotifyPropertyChanged 是完全可以接受的-

通常,模型实现了使它的易于绑定到视图的设施。这通常意味着它通过 INotifyPropertyChangedINotifyCollectionChanged 接口支持属性和集合更改通知。表示表示对象集合的类类通常从 ObservableCollection<T> 类派生,这提供了 INotifyCollectionChanged 接口的实现。

尽管你决定是否需要这种类型的实现,但请记住-

如果模型类未实现要求接口,则为 ?

有时需要使用不实现 INotifyPropertyChangedINotifyCollectionChangedIDataErrorInfo 或者 INotifyDataErrorInfo 接口的模型对象。在这些情况下,视图模型可能需要包装模型对象,并将所需的属性暴露给视图。这些属性的值将由模型对象直接提供。视图模型将为它的公开的属性实现所需的接口,以便视图可以轻松地数据绑定到它们。

取自- http://msdn.microsoft.com/en-us/library/gg405484(PandP.40).aspx

I 一些项目,我们在模型中没有实现 INotifyPropertyChanged,因为在我们的模型中遇到了很多问题,所以在VM中需要更新属性,并在将它们传递给/dl之前需要更新它们。

如果你需要使用模型对象( 在可以编辑网格或者列表中表示) 或者复杂模型的集合,你会遇到问题;模型对象不会自动更新,你必须管理你的虚拟机中所有的东西。

原作者:
...