MVVM:如何将ObservableCollection传递给其他视图模型?

时间:2014-05-06 22:58:45

标签: c# wpf mvvm viewmodel

我正在设计一个MVVM框架,我需要知道我对MVVM模式的理解是否正确。我的问题很简单。我应该如何在VieModels之间传递ObservableCollection对象?或者不应该?

我有一个CustomerViewModel,它有一个ObservableCollection来保存客户列表。我还有一个InsertCustomerViewModel,它负责将新的客户模型插入到ObservableCollection中。在InsertCustomerViewModel中,我有一个名为Insert()的方法,每次用户单击“插入”按钮时都会调用该方法。

我到目前为止所做的是将CustomerViewModel中的ObsertvableCollection传递给InsertCustmerViewModel的构造函数,然后在Insert方法中传递Items.Add(newCustomer)。

我的实施是否正确?或者有更好的方法来完成这项工作吗?

2 个答案:

答案 0 :(得分:1)

我会将CustomerViewModel传递给InsertCustomerViewModel并公开该集合的属性。这样您就可以直接从InsertCustomerViewModel使用和修改该集合。

答案 1 :(得分:0)

从我的观点来看InsertCustomerViewModel在这里没有任何意义。当用户插入客户时,它应该只添加CustomerCollection类,该类应该是多个ViewModel的模型。

我认为这个想法应该通过一些常见的实例在两个ViewModel中共享相同的CustomerCollection模型。