WPF меню с ярлыками и пользовательским RoutedCommand
Я новичок в WPF, так что я могу что-то упустить. В моем классе MainWindow есть простая функция StartService. Я хотел добавить пункт меню "Запуск службы" с помощью сочетания клавиш Ctrl+S в моем приложении. Я должен был сделать следующее:
В моем классе MainWindow я должен был определить:
public static RoutedCommand StartServiceRoutedCmd = new RoutedCommand();
В своем коде 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>