执行RelayCommand WPF之前的UI验证

时间:2011-02-14 13:54:37

标签: wpf mvvm relaycommand

我是WPF的新手,我尝试使用RelayCommand实现演示应用程序。

我的问题是:

如果我想执行一个命令,该命令必须询问用户他是否确定要先执行它 - 这是最好的方法吗? 我需要一个“你确定吗?”要弹出的消息框。但是,该命令在viewmodel上执行,当然我不想乱用GUI。

由于

2 个答案:

答案 0 :(得分:1)

我处理此问题的方法是在您的IOC中注册一个IDialogService接口,并可供ViewModel使用。

然后,该服务提供了与“用户”交互的各种方式。因此,您可以使用ConfirmMessage方法,该方法根据接受对话框的用户返回true或false。

然后,对于单元测试说,您可以使用不同的IDialogService实现,以便在测试时向ViewModel提供预设的响应。

答案 1 :(得分:0)

我自己就碰到了这个。我正在使用MVVM Light,我使用Messenger来完成此任务。

我让我的ViewModel发送了GetConfirmationMessage,我在代码隐藏中注册了它。在GetConfirmationMessage的处理程序中,我弹出对话框并获得重新连接。如果用户单击“确定”,则会发送ConfirmationReceived消息,该消息由ViewModel处理以执行相应的更新。