2011-02-14 32 views
0

我是WPF的新手,我尝试使用RelayCommand来实现演示应用程序。在执行RelayCommand之前进行UI验证WPF

我的问题是这样的:

,如果我要执行哪个有权询问用户是否自己一定要首先执行它的命令 - 什么是做到这一点的最好方法是什么? 我需要一个“你确定吗?”弹出消息框。但是,该命令在视图模型上执行,当然我不想在这里混淆GUI。

谢谢

回答

0

我刚碰到这个自己。我使用MVVM Light,并使用Messenger完成此操作。

我让我的ViewModel发送了一个GetConfirmationMessage,这是我在代码隐藏中注册的。在GetConfirmationMessage的处理程序中,我弹出对话框并获得reuslts。如果用户点击OK,我发送一个ConfirmationReceived消息,由ViewModel处理以进行适当的更新。

1

我处理这个问题的方法是在您的IOC中注册一个IDialogService界面,并可用于ViewModels。

该服务然后提供与“用户”交互的各种方式。所以你可以有一个ConfirmMessage方法,根据接受对话的用户返回true或false。

然后对于单元测试说,你可以有一个不同的IDialogService实现,允许你在测试时向你的ViewModel提供预定的响应。

+0

Oooh。我喜欢这个。 – Robaticus 2011-02-17 23:26:44