我是 WPF 新手,我尝试使用RelayCommand实现一个演示应用程序。
我的问题是这样的:
如果我想执行一个命令,该命令必须询问用户他是否确定要先执行它 - 最好的方法是什么?我需要一个“你确定吗?” 要弹出的消息框。但是,该命令是在 viewmodel 上执行的,当然我不想在那里弄乱 GUI。
谢谢
我是 WPF 新手,我尝试使用RelayCommand实现一个演示应用程序。
我的问题是这样的:
如果我想执行一个命令,该命令必须询问用户他是否确定要先执行它 - 最好的方法是什么?我需要一个“你确定吗?” 要弹出的消息框。但是,该命令是在 viewmodel 上执行的,当然我不想在那里弄乱 GUI。
谢谢
我处理这个问题的方法IDialogService
是在你的 IOC 中注册一个接口,并且你的 ViewModel 可以使用它。
然后,该服务提供与“用户”交互的各种方式。因此,您可以有一个 ConfirmMessage 方法,该方法根据用户接受对话框返回 true 或 false。
然后对于单元测试来说,您可以有一个不同的IDialogService
实现,允许您在测试时将预设响应提供给您的 ViewModel。
我自己也遇到了这个。我正在使用 MVVM Light,并使用 Messenger 来完成此操作。
我让我的 ViewModel 发送了一个GetConfirmationMessage
,我已经在代码隐藏中注册了它。在处理程序中GetConfirmationMessage
,我弹出了对话框并得到了结果。如果用户单击“确定”,我会发送一条ConfirmationReceived
消息,由 ViewModel 处理以进行适当的更新。