2011-07-18 54 views
3

我正在看一个解释MVVM很好的视频。但是,它似乎只显示一个窗口应用程序模型。如果你想要处理多窗口模型,你需要做什么?WPF + MVVM与多窗口处理

从我看到的.. app.xaml链接到MainWindow(作为DataContext)。由于app.xaml是执行MainWindow的起点。 MainWindow具有ViewModel作为绑定,因此它可以处理他的ViewModels ..但所有这些仅适用于一个窗口..您想要引入第二个窗口会发生什么?你如何继续?

谢谢。

回答

1

您可以通过服务实例化您的视图(Window)类型,通过服务注入为抽象。然后,您可以在服务中以编程方式设置该窗口的DataContext,找到合适的视图并使用myWindow.Show()myWindow.ShowDialog()来显示该窗口。一个MVVM框架如Caliburn.Micro有一个WindowManager负责照顾视图位置和视图/视图模型绑定。

+0

你从一个特定的框架讨论WindowManager。但是你认为我们可以用一个静态类来处理这个问题吗?它包含了Windows列表? – Rushino

+0

绝对是的,但您可能希望使其基于实例,并且在您的视图模型中针对IWindowManager等抽象工作,因为您希望在单元测试中模拟对话结果等内容。 – devdigital

+0

好的,谢谢! – Rushino