使用MVVM模式打开about框

Jas*_*onD 10 modal-dialog mvvm about-box

我正在研究一个新的WPF应用程序,我试图保持尽可能接近MVVM模式.我的XAML文件现在没有代码隐藏,我的所有交互性都是使用Josh Smith的RelayCommand类和我的ViewModel类中的命令实现的.

这很有用,直到我开始处理内务处理任务,例如关于框和系统首选项页面.我希望将这些作为模态对话框,但如果我创建一个RelayCommand来打开这些页面,我将在视图模型中创建对视图的依赖.

这让我觉得与MVVM模式不同.

是否存在在MVVM模式中创建新窗口(模态和/或无模式)而不创建依赖关系的既定方法?似乎我可以保持ViewModel清洁的唯一方法是在XAML代码隐藏文件中创建一个Click事件处理程序,并在旧视图中创建新视图.

有什么建议?

jas*_*son 7

处理此问题的一种方法是实现向ViewModel提供视图的服务.视图向服务注册,ViewModels可以从服务请求对话框.这是Gang of Four 中介模式的一个例子.