如何使用MVVM访问WPF应用程序中另一个ViewModel中的一个ViewModel对象

时间:2012-09-17 13:11:17

标签: c# wpf mvvm

我在WPF应用程序中使用mvvm模式而不使用任何数据库。我陷入了问题,我有一个视图UploadView,其中用户上传一些excel文件及其视图模型名为UploadViewModel在此我读取上传的文件数据并将其保存在一些数据表对象,这是UploadvViewModals类的对象,它工作正常,但我的问题是,现在我必须在一些具有不同Viewmodal的ItemsControl的另一个视图上显示上传的数据(datatable对象)。 作为WPF和windows的新手。我不知道如何继续。 有什么方法可以做到这一点?

3 个答案:

答案 0 :(得分:3)

你可以在EventAggragation(调解员模式)

获取战利品

其他一些tutorial开始

答案 1 :(得分:1)

根据两个视图模型的松耦合程度,有几种方法可以做到这一点。如果您在上载视图模型中直接引用第二个视图模型,则可以在显示此视图模型/视图时传递数据。

这似乎是最明智的选择,如果a)数据是第二个视图模型的要求,b)上传视图模型负责创建第二个视图模型。在这种情况下,您可以将数据作为依赖项传递给第二个视图模型的构造函数。

替代方法包括使用事件聚合器作为中介来在两个视图模型之间传递数据,但我会采用第一种方法。

答案 2 :(得分:1)

如果您正在使用MVVM,那么您应该真正访问Model类中的Excel文件。 ViewModel通常用于将模型数据转换为Views可以显示的格式,而不是用于访问数据。