WPF передает нажатую клавишу в обработчик команд
Я желаю следующее поведение:
- Нажатие Ctrl + 1 вызывает выбор первого элемента из списка
- Ctrl + 2 выбирает первые два элемента
- И так далее.
В настоящее время я обрабатываю нажатые клавиши с помощью RoutedEvent, Window.CommandBindings и InputGesture. Работает нормально, но у меня десять почти одинаковых команд (1,2,3...9,0). Есть ли лучший способ? Например, отправка нажатой клавиши в CommandBinding.Executed
Пример моего кода:
//XAML
<Window.CommandBindings>
<CommandBinding Command="{x:Static local:CustomCommands.SelectOne}" Executed="cmdSelectOne_Executed" />
//CustomCommands.cs
public static class CustomCommands
{
public static RoutedCommand SelectOne = new RoutedCommand();
//...
static CustomCommands()
{
omg.InputGestures.Add(new KeyGesture(Key.D1, ModifierKeys.Control, "Ctrl + 1"));
//...
//MainWindow.xaml.cs
private void cmdSelectOne_Executed(object sender, ExecutedRoutedEventArgs e)