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