2010-12-01 4 views
0

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

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

Обычно это происходит потому, что нет CommandBinding для команды в рамках управления, который имеет набор команд, на нем. Если вы установите контрольную точку в обработчике CanExecute, это попадет для MenuItem?