我有一个使用mvvm模式的 WPF 应用程序,我需要从我的主视图模型中显示一个对话框。
我有一个带有视图模型的辅助视图,我认为我有两个选项来创建对话框。
选项1
在主视图模型中,我可以执行以下操作:
- 创建对话框的视图
- 创建对话框的视图模型
- 将视图模型分配给视图
- 显示对话框
选项 2
在主视图模型中:
- 创建对话框的视图模型
在对话框的视图模型的构造函数中:
- 创建对话框的视图
- 将视图模型分配给视图。在这种情况下分配“this”
- 显示对话框
我知道在 MVVM 中,视图模型对视图一无所知,但在第二个选项中,实际上,视图模型没有任何链接到视图的属性,只是在构造函数中创建一个显示,在最终状态视图模型对视图一无所知。
不过我觉得principal view里面的代码比较清晰,因为我只需要创建view model,只需要一行代码,而不是option 1需要4行(create view, create view model, assign视图模型到视图并显示对话框)。
如果我想遵循mvvm模式,我认为第二个选项不是一个坏主意,我错了吗?