Usare delle combinazioni di tasti oppure il mouse come shortcut per alcune funzionalità tipo Apri, Stampa, Salva etc è un requisito abbastanza comune, peccato che gestire questo aspetto utilizzando il pattern Model-View-ViewModel non sia proprio banale a causa di una piccola limitazione: la proprietà Command dell’oggetto KeyBinding non è una dependency property.
Il workaround ovviamente esiste, è però un peccato che si debba reinventare la ruota per realizzare banalità del genere.
Con WPF4 finalmente la proprietà Command di MouseBinding e  KeyBinding diventano delle dependency properties questo significa che è possibile mappare delle gestures verso dei comandi in questo modo:

   1: <Window.InputBindings>
   2:         <KeyBinding Command="{Binding ExitCommand}"
   3:                     Key="{Binding ExitCommand.GestureKey}"
   4:                     Modifiers="{Binding ExitCommand.GestureModifier}" />
   5:         <MouseBinding Command="{Binding ExitCommand}"
   6:                       MouseAction="{Binding ExitCommand.MouseGesture}" />
   7:     </Window.InputBindings>

Notate inoltre come Key,Modifiers e MouseAction siano anch’esse delle dependency properties percui è possibile definirle direttamente all’interno del Command esposto dal ViewModel

Technorati Tags: ,,