Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVVM:如何将ObservableCollection传递给其他viewmodels?_C#_Wpf_Mvvm_Viewmodel - Fatal编程技术网

C# MVVM:如何将ObservableCollection传递给其他viewmodels?

C# MVVM:如何将ObservableCollection传递给其他viewmodels?,c#,wpf,mvvm,viewmodel,C#,Wpf,Mvvm,Viewmodel,我正在设计一个MVVM框架,我需要知道我对MVVM模式的理解是否正确。我的问题很简单。我应该如何在VIE模型之间传递ObservableCollection对象?或者我不应该 我有一个CustomServiceWModel,它有一个可观察的集合来保存客户列表。我还有一个InsertCustomerViewModel,负责将新的客户模型插入到ObservableCollection中。在InsertCustomerViewModel中,我有一个名为Insert()的方法,每当用户单击Insert按

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

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

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


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

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

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


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

谢谢。传递CustomerViewModel而不是collection属性有什么好处吗?它只允许您访问
CustomerViewModel
collection属性,这有助于将修改后的集合恢复到该视图模型中…我相信MVVM Light Toolkit()的源代码可以在线获得,您可以看到他是如何实现Messenger类的