在WPF中使用命令绑定时处理异常的最佳实践是什么?

时间:2009-12-11 12:23:49

标签: wpf mvvm exception-handling

我正在为WPF应用程序使用MVVM模式。在几个地方,我将命令绑定到视图中的输入元素,如下面的XAML:

<Button Command="{Binding TheClickCommand}" >Click</>

在我的viewmodel中执行命令时处理异常的最佳实践是什么 - 即通知视图出错的最佳方法是什么?我可以使用IDataErrorInfo模式还是有其他内置模式用于此场景?

2 个答案:

答案 0 :(得分:1)

我讨厌这个答案,但这实际上取决于背景。

今天我可以使用IoC来获取 ILoggerService INotificationSerivce 或两者并在出现问题时执行操作。明天我可能会对 DispatcherUnhandledException 事件处理程序中的某个原始 MessageBox.Show()感到满意。或者也许我会写自己的附属物ala

<Button loc:Commanding.ExceptionAwareCommand="{loc:CommandExtension 
          Command={Binding TheClickCommand}, 
          FallBackCammand={Binding ErrorHandlerCommand}}" />

和它一起生活......

可能答案可能是这样的:“选择两种类之间进行通信的最佳方法并使用它”。抱歉没有具体......也许其他人会更具体。

注意:答案中提供的接口名称不是WPF标准。我只是以它们为例。

干杯

答案 1 :(得分:0)

最简单的答案就是弹出一个消息框。更复杂的方法可能是使用通知服务,该服务以适合您应用的方式向用户显示消息,但可以使用虚假服务进行单元测试。