如何使用MVVM Light创建模态对话框

时间:2015-05-14 00:02:53

标签: modal-dialog mvvm-light

使用最新版本的MVVM Light框架在WPF中打开模式对话框的正确方法是什么。我还希望能够将值传递给用作模式对话框的窗口的ViewModel。

我在MVVM Light网站上找不到任何样本。

1 个答案:

答案 0 :(得分:0)

您应该使用DialogService来抽象视图的可视化表示,以便您可以执行" Show"在视图模型中(以后可能/希望)模拟它进行测试。

有关DialogService here的更多信息。

-edit-我错了,因为Alan Rutter(OP)指出IDialogService仅适用于简单的消息框。我不认为MVVM灯会对你有所帮助,但你可以建立一个类似的服务(例如ICustomDialogService?)。自定义对话框可以注册为服务可用,然后接口提供调用,允许您按名称调用特定对话框(可能是String或Enum)并传递您想要的任何参数。

对话框可以通过几种不同的方式向服务注册 - 静态构造函数中的类型(您不知何故必须强制执行)或更明确地通过程序集中的属性进行注册。甚至可能使用类属性。这取决于您的启动顺序和一般基础设施。