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