In previous two posts we covered wiring up the Views and ViewModels and Blendability and showing ModalDialogs in MVVM way.
Today we will touch another problem that people starting with MVVM very often fail to address properly:
Handling the UI Events of the View in the ViewModel while avoiding placing any logic in code behind of the View.
So our design goals for this post are:
* We want to be able to wire-up UI Events to the commands in ViewModel via DataBinding in Xaml without any code behind in the View
* View should not be aware of the ViewModel’s type or any other details of its existence – View should just use Silverlight’s DataBinding to access its ViewModel public properties (its DataContext) regardless of what is actually set to be there
* We want to be able to handle any event that occurs in View (that includes not only Button clicks but also Mouse events, Drag and Drop events, Loaded events etc).