我正在开发一个新的WPF应用程序,尽可能地遵循MVVM模式。目前我的XAML文件没有代码后台,所有的交互都是通过Josh Smith的RelayCommand类和ViewModel类中的命令实现的。
这个方法在处理一些常规任务时非常有效,例如关于框和系统首选项页面。我想将它们作为模态对话框呈现,但如果我创建一个RelayCommand来打开这些页面,我将在我的ViewModel中创建一个对View的依赖。
这让我感觉违反了MVVM模式的原则。
有没有一种已经建立的方法可以在MVVM模式下创建新窗口(模态或非模态)而不会创建依赖关系?似乎唯一能保持ViewModel干净的方法是在XAML代码后台文件中创建Click事件处理程序,并在旧视图中创建新视图。
有什么建议吗?