CanExecute Event
Collapse the table of content
Expand the table of content

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.

Namespace:   System.Windows.Input
Assembly:  PresentationCore (in PresentationCore.dll)

public event CanExecuteRoutedEventHandler CanExecute

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

CanExecuteEvent

Routing strategy

Bubbling

Delegate

CanExecuteRoutedEventHandler

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.

void OpenCmdCanExecute(object sender, CanExecuteRoutedEventArgs e)
{
    e.CanExecute = true;
}

.NET Framework
Available since 3.0
Return to top
Show:
© 2016 Microsoft