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)

0 ответов

Другие вопросы по тегам