如何从视图模型中打开一个新窗口并在MVVM中将参数传递给它?

时间:2012-11-04 06:48:19

标签: wpf mvvm prism

我有一个带有列表的窗口,其中单击列表条目将显示该项目的详细视图的新窗口

在MVVM中最干净的方法是什么?我想过只做一个容器。解析< IViewType>()。Show()并让Unity创建所有的依赖项,但只是调用Show()听起来是非MVVM。我应该创建某种WindowService管理器类还是会有点矫枉过正?代码可以接受哪一层代码来调用Show()

其次,如何将参数(例如CustomerID和ProductID)从初始视图模型传递到将附加到正在显示的新窗口的新视图模型?

2 个答案:

答案 0 :(得分:0)

我通常更喜欢创建一个NavigationService来处理实例化窗口和视图模型,并将视图模型设置为数据上下文。然后,您可以在父视图模型中调用它,并将它们分离。

答案 1 :(得分:0)

我使用this方法与MVVM进行对话。

我现在要做的就是从我的视图模型中调用以下内容。

var result = this.uiDialogService.ShowDialog("Dialogwindow title goes here", dialogwindowVM);