Utilizzo la RelayCommand nella mia app. È fantastico per inserire il codice nel viewmodel, ma come faccio a collegare i tasti al mio comando?Legatura di tasti a RelayCommand
RoutedUICommand ha la proprietà InputGestures, che rende automaticamente invocato il comando quando preme il tasto. (Come bonus aggiuntivo, rende anche la visualizzazione della sequenza di tasti nel MenuItem.) Sfortunatamente, non c'è un'interfaccia riutilizzabile per le proprietà extra di RoutedUICommand, quindi non posso creare un RelayUICommand che abbia la stessa magia.
Ho già provato ad utilizzare InputBindings:
<Window.InputBindings>
<KeyBinding Key="PageUp" Command="{Binding SelectPreviousLayerCommand}"/>
</Window.InputBindings>
Ma che mi fa un'eccezione di runtime, perché KeyBinding.Command non è una proprietà di dipendenza. (In realtà, ciò che si lamenta è che KeyBinding non è nemmeno un DependencyObject.) E poiché il mio RelayCommand è una proprietà sul mio ViewModel (al contrario del campo statico per cui RoutedUICommand è progettato), il database è l'unico modo che conosco di fare riferimento da XAML.
Come avete risolto questo ragazzi? Qual è il modo migliore per associare un tasto a un RelayCommand?
Il binding della proprietà Command della classe KeyBinding in .NET 4.0 è descritto in un articolo all'indirizzo http://tomlev2.wordpress.com/2009/10/26/vs2010-binding-support-in-inputbindings/ –
Il link precedente si è spostato a http://www.thomaslevesque.com/2009/10/26/vs2010-binding-support-in-inputbindings/ – avenmore