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 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
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