EventToCommand for Attached Property
To propagate events to a view to a ViewModel – use an attached property, not fancy xaml binding, but an attached property. It says so right here in so many words. So if you want MouseOver or DoubleClick, AutoComplete.Populating, etc. this is your answer.
Here’s the example everyone points you to.
The all purpose EventToCommand class in the MVVM Light Toolkit looks like the most convenient way to get this job done.
For any type of click, retemplating a button and using a ViewModel ICommand for its Command is the way to go.