Un modo per gestire gli eventi in MVVM e XAML è quello di utilizzare le funzionalità Miscela interattività. Questo spazio dei nomi contiene le classi InvokeCommandAction e CallMethodAction.
InvokeCommandAction consente di associare qualsiasi evento a un comando del modello di visualizzazione mentre CallMethodAction consente di associare qualsiasi evento a un metodo del modello di visualizzazione.
Per esempio, se si desidera associare l'evento DoubleClick di un pulsante per un comando di visualizzazione modello si dovrebbe fare in questo modo:
<Button>
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseDoubleClick">
<i:InvokeCommandAction Command="{Binding Path=DoSomethingCommand}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
e dichiarando questo spazio dei nomi:
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
Tutto quello che è necessario fare riferimento nei tuoi progetti è installare Expression Blend o Expression Blend SDK.
Imo vincolante un evento a un ViewModel è mai una buona idea. Ovviamente dipende da come vuoi che MVVM funzioni per te, ma separiamo strettamente gli eventi, che sono la logica ui, e i comandi che sono la logica aziendale. Volevo solo aggiungere questo :) alla fine dipende molto da come e cosa vuoi ottenere. – dowhilefor
Grazie, bel commento terrò a mente. Per ora voglio solo che il codice dietro i file sia vuoto. Ma da tutte le cose che ho letto hai ragione;) – jefsmi
@dowhilefor è una risposta da sola - e buona. Ti suggerisco di scrivere qualcosa. :) – ANeves