CommandBinding.CanExecute Event
Occurs when the command associated with this CommandBinding initiates a check to determine whether the command can be executed on the command target.
Assembly: PresentationCore (in PresentationCore.dll)
When the CanExecute method on a RoutedCommand is called, the PreviewCanExecute event is raised on the command target. If the event is not handled, the CanExecute event is raised. If the command target has a CommandBinding for the command, the CanExecute handler for that CommandBinding is called. If the command target does not have a CommandBinding for the command, the CanExecute event bubbles up the element tree searching for an element that has a CommandBinding associated with the command.
Identifier field | |
Routing strategy | Bubbling |
Delegate |
The corresponding tunneling event is PreviewCanExecute.
The following example creates a CommandBinding that maps an ExecutedRoutedEventHandler and a CanExecuteRoutedEventArgs handler to the Open command.
<Window.CommandBindings> <CommandBinding Command="ApplicationCommands.Open" Executed="OpenCmdExecuted" CanExecute="OpenCmdCanExecute"/> </Window.CommandBindings>
// Creating CommandBinding and attaching an Executed and CanExecute handler CommandBinding OpenCmdBinding = new CommandBinding( ApplicationCommands.Open, OpenCmdExecuted, OpenCmdCanExecute); this.CommandBindings.Add(OpenCmdBinding);
The following shows the CanExecuteRoutedEventHandler which sets CanExecute to true.
Available since 3.0