我的问题涉及数千个主题,如果我忽略了我的问题的答案,我很抱歉,但是就我所看到的,似乎没有人真正能够回答我的问题。例如:在MVVM WPF中打开新窗口。
答案可以解决单个WPF项目(包括模型、视图模型和视图)的问题,但是由于我正在学习如何正确实现MVVM(多次阅读后最佳实践是为模型、视图模型创建单独的类库(dlls)和一个独立的GUI项目),这种方法在我看来似乎行不通,因为如果我想要创建像IWindowService这样的界面(在之前的URL和这里描述),我就无法访问Window或Control类,因为那样我应该引用GUI项目,而整个模式的目标也被破坏了。
所以我的问题是如何显示一个新窗口(带有新的视图模型),例如从MainViewModel,同时尊重松耦合的MVVM原则和分离的项目。
更详细的示例:
我有以下结构:
MODEL(dll项目) Profile VIEWMODEL(dll项目) MainViewModel AddProfileViewModel
VIEW(WPF)(exe 项目) MainWindow AddProfileWindow
我打开MainWindow并想按AddProfile按钮,然后AddProfileWindow需要显示并附加AddProfileViewModel。
答案可以解决单个WPF项目(包括模型、视图模型和视图)的问题,但是由于我正在学习如何正确实现MVVM(多次阅读后最佳实践是为模型、视图模型创建单独的类库(dlls)和一个独立的GUI项目),这种方法在我看来似乎行不通,因为如果我想要创建像IWindowService这样的界面(在之前的URL和这里描述),我就无法访问Window或Control类,因为那样我应该引用GUI项目,而整个模式的目标也被破坏了。
所以我的问题是如何显示一个新窗口(带有新的视图模型),例如从MainViewModel,同时尊重松耦合的MVVM原则和分离的项目。
更详细的示例:
我有以下结构:
MODEL(dll项目) Profile VIEWMODEL(dll项目) MainViewModel AddProfileViewModel
VIEW(WPF)(exe 项目) MainWindow AddProfileWindow
我打开MainWindow并想按AddProfile按钮,然后AddProfileWindow需要显示并附加AddProfileViewModel。
Messenger
发送一些OpenWindow
消息,并在View项目中订阅它。 https://dev59.com/xGQn5IYBdhLWcg3wPlCj - Taras Shcherban