我正在开发一个新的 WPF 应用程序,并且我试图尽可能地接近 MVVM 模式。我的 XAML 文件现在没有代码隐藏,我所有的交互性都是使用 Josh Smith 的 RelayCommand 类和我的 ViewModel 类中的命令来实现的。
在我开始处理家务任务之前,这非常有效,例如关于框和系统首选项页面。我希望将这些作为模式对话框,但如果我创建一个 RelayCommand 来打开这些页面,我将在我的视图模型中创建对视图的依赖。
这让我觉得与 MVVM 模式的本质背道而驰。
是否有在 MVVM 模式中创建新窗口(模态和/或无模态)而不创建依赖项的既定方法?似乎我可以保持 ViewModel 干净的唯一方法是在 XAML 代码隐藏文件中创建一个 Click 事件处理程序,并在旧视图中创建新视图。
有什么建议吗?