CommandBinding.CanExecute Событие

Определение

Происходит при проверке командой, связанной с этим CommandBinding, возможности ее выполнения в целевом объекте команды.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 Event CanExecute As CanExecuteRoutedEventHandler 

Примеры

В следующем примере создается CommandBinding, который сопоставляет ExecutedRoutedEventHandler и обработчик CanExecuteRoutedEventArgs с командой 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)

Ниже показан CanExecuteRoutedEventHandler, который задает CanExecute для 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

Комментарии

При вызове метода CanExecute в RoutedCommand в целевом объекте команды возникает событие PreviewCanExecute.When the CanExecute method on a RoutedCommand is called, the PreviewCanExecute event is raised on the command target. Если событие не обрабатывается, возникает событие CanExecute.If the event is not handled, the CanExecute event is raised. Если целевой объект команды имеет CommandBinding для команды, вызывается обработчик CanExecute для этого CommandBinding.If the command target has a CommandBinding for the command, the CanExecute handler for that CommandBinding is called. Если целевой объект команды не имеет CommandBinding для команды, CanExecute событие переносится вверх по дереву элементов, в котором выполняется поиск элемента с CommandBinding, связанным с командой.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.

Сведения о маршрутизируемом событииRouted Event Information

Поле идентификатораIdentifier field CanExecuteEvent
Стратегия маршрутизацииRouting strategy Восходящей маршрутизацииBubbling
ДелегатDelegate CanExecuteRoutedEventHandler

Применяется к

Дополнительно