2010-12-01 9 views
0

コマンドコントロールは常に無効になっていますが、コマンドは実行できますか?コマンドがそれに設定されているコントロールの範囲内コマンドにはいるCommandBindingがないのでAlt + F4WPFコマンド問題

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

通常この問題が発生したとのコマンドも実行されます。 CanExecuteハンドラでブレークポイントを設定すると、MenuItemのヒットになりますか?