0

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

我的问题是这样的:

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

谢谢

4

2 回答 2

1

我处理这个问题的方法IDialogService是在你的 IOC 中注册一个接口,并且你的 ViewModel 可以使用它。

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

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

于 2011-02-15T06:27:03.320 回答
0

我自己也遇到了这个。我正在使用 MVVM Light,并使用 Messenger 来完成此操作。

我让我的 ViewModel 发送了一个GetConfirmationMessage,我已经在代码隐藏中注册了它。在处理程序中GetConfirmationMessage,我弹出了对话框并得到了结果。如果用户单击“确定”,我会发送一条ConfirmationReceived消息,由 ViewModel 处理以进行适当的更新。

于 2011-02-14T14:01:02.197 回答