CommandBinding.CanExecute Event

Definition

Si verifica quando il comando associato a CommandBinding avvia un controllo per determinare se è possibile eseguire il comando sulla destinazione.Occurs when the command associated with this CommandBinding initiates a check to determine whether the command can be executed on the command target.

public:
 event System::Windows::Input::CanExecuteRoutedEventHandler ^ CanExecute;
public event System.Windows.Input.CanExecuteRoutedEventHandler CanExecute;
member this.CanExecute : System.Windows.Input.CanExecuteRoutedEventHandler 
Public Custom Event CanExecute As CanExecuteRoutedEventHandler 
Public Event CanExecute As CanExecuteRoutedEventHandler 

Examples

Nell'esempio seguente viene creato un CommandBinding che esegue il mapping di un ExecutedRoutedEventHandler e di un gestore CanExecuteRoutedEventArgs al comando Open.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);
' Creating CommandBinding and attaching an Executed and CanExecute handler
Dim OpenCmdBinding As New CommandBinding(ApplicationCommands.Open, AddressOf OpenCmdExecuted, AddressOf OpenCmdCanExecute)

Me.CommandBindings.Add(OpenCmdBinding)

Di seguito viene illustrato il CanExecuteRoutedEventHandler che imposta CanExecute per true.The following shows the CanExecuteRoutedEventHandler which sets CanExecute to true.

void OpenCmdCanExecute(object sender, CanExecuteRoutedEventArgs e)
{
    e.CanExecute = true;
}
Private Sub OpenCmdCanExecute(ByVal sender As Object, ByVal e As CanExecuteRoutedEventArgs)
    e.CanExecute = True
End Sub

Remarks

Quando viene chiamato il metodo CanExecute su un RoutedCommand, viene generato l'evento PreviewCanExecute sulla destinazione del comando.When the CanExecute method on a RoutedCommand is called, the PreviewCanExecute event is raised on the command target. Se l'evento non viene gestito, viene generato l'evento CanExecute.If the event is not handled, the CanExecute event is raised. Se la destinazione del comando ha un CommandBinding per il comando, viene chiamato il gestore CanExecute per quel CommandBinding.If the command target has a CommandBinding for the command, the CanExecute handler for that CommandBinding is called. Se la destinazione del comando non dispone di un CommandBinding per il comando, l'evento CanExecute bolle verso l'alto l'albero degli elementi che cerca un elemento con un CommandBinding associato al comando.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.

Informazioni evento indirizzatoRouted Event Information

Campo identificatoreIdentifier field CanExecuteEvent
Strategia di routingRouting strategy BubblingBubbling
DelegatoDelegate CanExecuteRoutedEventHandler

Applies to

See also