У меня есть пользовательская команда, и я пытаюсь выполнить их из контекстного меню, но они всегда отображаются как отключенные, если я не нажму кнопку на пользовательском интерфейсе (кнопки не имеют ничего общего с командами).
После нажатия кнопки команды начинают отображаться правильно (когда они недоступны, они становятся недоступными и включаются, если они доступны).
Редактирование: оказывается, что это не кнопка, которая заставляет команду работать правильно, но кнопка или другие элементы управления в фокусе (например, если я вставляю элемент управления, это также позволяет мои команды).
Вот код для команд:
<Window.InputBindings>
<KeyBinding Command="{x:Static local:MainWindow.Quit}" Key="Q" Modifiers="Ctrl"/>
<KeyBinding Command="{x:Static local:MainWindow.Disconnect}" Key="D" Modifiers="Ctrl"/>
</Window.InputBindings>
<Window.ContextMenu>
<ContextMenu Opacity="95">
<MenuItem Header="Quit Application Ctrl + Q" Command="{x:Static local:MainWindow.Quit}"/>
<MenuItem Header="Disconnect from the pump Ctrl + D" Command="{x:Static local:MainWindow.Disconnect}"/>
</ContextMenu>
</Window.ContextMenu>
Вот команды CanExecuteMethod:
public static RoutedCommand Quit = new RoutedCommand();
private void QuitCanExecute(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = true;
e.Handled = true;
}