开发者

What is the best practice for handling exceptions when using command binding in WPF?

I am using the MVVM pattern for a WPF application. In several places I bind commands to input elements in the views as in the following XAML:

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

What is the best practice for handling exceptions thrown when the command is executed in 开发者_C百科my viewmodel - i.e. what is the best way to inform the view that something is wrong? Can I use the IDataErrorInfo pattern or is there some other built-in pattern for this scenario?


I hate this answer, but it really depends on a context.

Today I may use IoC, to get ILoggerService or INotificationSerivce or both and do the stuff when something went wrong. Tomorrow I may be happy with raw MessageBox.Show() somewhere in the DispatcherUnhandledException event handler. Or maybe I will write my own attached property ala

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

and live with it...

Probably the answer may go like this: "Choose the best method to communicate between two classes and use it". Sorry for being non concrete... Maybe somebody else will be more specific.

NB: Interfaces' names, provided in the answer are not WPF standard. I use them just as an example.

Cheers


The easiest answer is to simply pop a message box. A more sophisticated approach might be to use a notification service, which displays the message to the user in a manner appropiate to you app, but can be mocked out with a fake service for unit testing.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜