代码之家  ›  专栏  ›  技术社区  ›  Jakob Christensen

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

  •  7
  • Jakob Christensen  · 技术社区  · 15 年前

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

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

    在我的viewModel中执行命令时,处理抛出异常的最佳实践是什么?即,什么是通知视图有问题的最佳方法?我是否可以使用IDataErrorInfo模式,或者是否有其他内置模式用于此方案?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Anvaka    15 年前

    我讨厌这个答案,但它确实取决于上下文。

    今天我可以用 IoC 得到 非法服务 信息周期 或者两者兼而有之,在出了问题的时候做点什么。明天我可能会对生的很满意 messagebox.show()显示 在某个地方 DispatcherUnhandledException 事件处理程序。或者我会写我自己的附属财产。

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

    和它一起生活…

    也许答案是这样的:“选择两个类之间交流的最佳方法并使用它”。不好意思不具体…也许其他人会更具体一些。

    注意:答案中提供的接口名称不是WPF标准。我只是举个例子。

    干杯

        2
  •  0
  •   Ian Oakes    15 年前

    最简单的答案就是简单地弹出一个消息框。更复杂的方法可能是使用通知服务,它以适合您应用程序的方式向用户显示消息,但可以使用用于单元测试的假服务来模拟。