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)
XMLNS for XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

'Declaration
Public Event CanExecute As CanExecuteRoutedEventHandler
<object CanExecute="CanExecuteRoutedEventHandler" .../>

Identifier field

CanExecuteEvent

Routing strategy

Bubbling

Delegate

CanExecuteRoutedEventHandler

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.

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
			Dim OpenCmdBinding As New CommandBinding(ApplicationCommands.Open, AddressOf OpenCmdExecuted, AddressOf OpenCmdCanExecute)

			Me.CommandBindings.Add(OpenCmdBinding)

The following shows the CanExecuteRoutedEventHandler which sets CanExecute to true.

Private Sub OpenCmdCanExecute(ByVal sender As Object, ByVal e As CanExecuteRoutedEventArgs)
    e.CanExecute = True 
End Sub

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2015 Microsoft