WPF Командная проблема - PullRequest
       4

WPF Командная проблема

0 голосов
/ 01 декабря 2010

Почему подчиненное управление всегда отключено, однако команда может быть выполнена?Команда также выполняется с Alt + F4

public static class CommandLibrary {
    static CommandLibrary() {
        ShutDownCommand = new RoutedUICommand("Exit", "Exit", typeof(CommandLibrary), new InputGestureCollection {new KeyGesture(Key.F4, ModifierKeys.Alt)});
    }

    public static RoutedUICommand ShutDownCommand { get; private set; }

    public static void BindCommands(Window hostWindow) {
        if (hostWindow == null)
            return;

        hostWindow.CommandBindings.Add(new CommandBinding(ShutDownCommand, OnShutDownCommandExecuted, OnShutDownCommandCanExecute));
    }

    private static void OnShutDownCommandExecuted(object sender, ExecutedRoutedEventArgs e) {
        MessageBox.Show("ShutDown Excuted!");
    }

    private static void OnShutDownCommandCanExecute(object sender, CanExecuteRoutedEventArgs e) {
        e.CanExecute = true;
    }
}

<MenuItem Command="local:CommandLibrary.ShutDownCommand" />

1 Ответ

1 голос
/ 02 декабря 2010

Обычно это происходит из-за отсутствия привязки Command для команды в области видимости элемента управления, для которого установлена ​​команда. Если вы установите точку останова в обработчике CanExecute, будет ли он попадать в MenuItem?

...