Связывание ключей RelayCommand
Я используюRelayCommand в моем приложении. Это отлично подходит для помещения кода в модель представления, но как привязать нажатия клавиш к моей команде?
RoutedUICommand имеет свойство InputGestures, которое позволяет автоматически вызывать команду при нажатии клавиши. (В качестве дополнительного бонуса он даже отображает нажатие клавиш в MenuItem.) К сожалению, нет никакого интерфейса многократного использования для дополнительных свойств RoutedUICommand, поэтому я не могу создать RelayUICommand, которая получает ту же магию.
Я уже пытался использовать InputBindings:
<code><Window.InputBindings> <KeyBinding Key="PageUp" Command="{Binding SelectPreviousLayerCommand}"/> </Window.InputBindings> </code>
Но это вызывает у меня исключение во время выполнения, потому что KeyBinding.Command не является свойством зависимости. (На самом деле, он жалуется на то, что KeyBinding не является даже DependencyObject.) И поскольку моя RelayCommand является свойством в моей ViewModel (в отличие от статического поля, для которого предназначена RoutedUICommand), привязка данных - единственный способ, который я знаю о сослаться на это из XAML.
Как вы, ребята, решили это? Какой лучший способ связать нажатие клавиши с RelayCommand?