如何将MVVM模型中的列表转换为View-Model中的ObservableCollections?

时间:2010-10-28 22:10:27

标签: wpf silverlight mvvm observablecollection

我正在WPF中编写一个示例应用程序,我希望模型可以在WinForms应用程序中轻松重用,所以我想保留WPF特定的东西,如INotifyChanged和DependencyObjects。

如果Model类有一个其他Model类的List,我如何在View-Model中实现相应的ObserveableCollection,这样我可以保持我的绑定是最新的?

如果我有一个拥有Employee列表的Boss模型对象,那么用例就是这样。我创建了一个Boss对象,但是我异步加载了Employees列表,如何知道何时检索和填充了Employees列表?我想将加载代码保留在Model中。

我想总结一下我所问的是什么是使模型与模型交互的正确方法,同时让View-Model反映这些变化?

1 个答案:

答案 0 :(得分:3)

您的模型需要提供更改通知。您可以使用INotifyPropertyChangedINotifyCollectionChanged以不可知的方式执行此操作。与您的问题相反,这些不是WPF特定的接口。它们位于System.ComponentModel中 - 不是WPF名称空间或程序集。

如果您真的不想使用这些界面,那么您始终可以提供自己的活动。无论如何,您的视图模型都需要附加到事件中,以使自己与模型保持同步。