WPF меню с ярлыками и пользовательским RoutedCommand

Я новичок в WPF, так что я могу что-то упустить. В моем классе MainWindow есть простая функция StartService. Я хотел добавить пункт меню "Запуск службы" с помощью сочетания клавиш Ctrl+S в моем приложении. Я должен был сделать следующее:

  1. В моем классе MainWindow я должен был определить:

    public static RoutedCommand StartServiceRoutedCmd = new RoutedCommand();

  2. В своем коде XAML я добавил:

<MenuItem Header="_Start Service" InputGestureText="Ctrl+S" Click="OnStartService" />

<Window.CommandBindings>
    <CommandBinding Command="{x:Static loc:MainWindow.StartServiceRoutedCmd}" 
                    Executed="OnStartService" />
</Window.CommandBindings>

<Window.InputBindings>
    <KeyBinding Command="loc:MainWindow.StartServiceRoutedCmd" Gesture="CTRL+S" />
</Window.InputBindings>

Вещи работают. Мне интересно, если это правильный и организованный путь? Мне нужен ярлык для моей функции StopService. Означает ли это, что мне нужно будет определить новый RoutedCommand StopServiceRoutedCmd и так далее для каждого ярлыка, который мне нужен?

1 ответ

Решение
<MenuItem Header="_Start Service" InputGestureText="Ctrl+S" Command="loc:MainWindow.StartServiceRoutedCmd />

<Window.CommandBindings>
       <CommandBinding Command="{x:Static loc:MainWindow.StartServiceRoutedCmd}" 
                Executed="OnStartService" />
       </Window.CommandBindings>

<Window.InputBindings>
       <KeyBinding Command="loc:MainWindow.StartServiceRoutedCmd" Gesture="CTRL+S" />
</Window.InputBindings>
Другие вопросы по тегам