One way to handle events in MVVM and XAML is to use the Blend Interactivity features. This namespace contains the InvokeCommandAction and the CallMethodAction classes.
InvokeCommandAction lets you bind any event to a view-model command while CallMethodAction lets you bind any event to a view-model method.
For example if you want to bind the DoubleClick event of a Button to a view-model command you would do like this:
<Button>
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseDoubleClick">
<i:InvokeCommandAction Command="{Binding Path=DoSomethingCommand}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
And declaring this namespace:
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
All you need to reference it in your projects is to install Expression Blend or the Expression Blend SDK.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…