我正在为一个WPF应用程序使用MVVM模式。在多个地方,我将命令绑定到视图中的输入元素上,如下所示的XAML代码:
<Button Command="{Binding TheClickCommand}" >Click</>
当我的视图模型执行命令时抛出异常处理的最佳实践是什么?即,通知视图出现问题的最佳方式是什么?我可以使用IDataErrorInfo模式吗?还是有其他内置模式适用于此场景?
我很讨厌这个答案,但它确实取决于上下文。
今天我可能会使用IoC,来获取ILoggerService或INotificationSerivce或两者都,并在出现问题时执行相关操作。明天我可能会满意于在DispatcherUnhandledException事件处理程序中的某个地方使用原始的MessageBox.Show()。或者也许我会编写自己的附加属性,比如:
<Button loc:Commanding.ExceptionAwareCommand="{loc:CommandExtension
Command={Binding TheClickCommand},
FallBackCammand={Binding ErrorHandlerCommand}}" />
和它一起生活...
可能的答案是:“选择最佳方法在两个类之间进行通信并使用它”。抱歉没有具体说明...也许其他人会更具体。
NB:答案中提供的接口名称不是WPF标准。我只是用它们作为示例。
干杯
最简单的方法是弹出一个消息框。更复杂的方法可能是使用通知服务,在适合您应用程序的方式下向用户显示消息,但可以使用虚假服务进行单元测试。