CommandBinding.Executed Событие

Определение

Происходит при выполнении команды, связанной с этим CommandBinding.Occurs when the command associated with this CommandBinding executes.

public:
 event System::Windows::Input::ExecutedRoutedEventHandler ^ Executed;
public event System.Windows.Input.ExecutedRoutedEventHandler Executed;
member this.Executed : System.Windows.Input.ExecutedRoutedEventHandler 
Public Event Executed As ExecutedRoutedEventHandler 

Примеры

В следующем примере создается 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)

Ниже показан ExecutedRoutedEventHandler, который создает MessageBox при выполнении команды.The following shows the ExecutedRoutedEventHandler which creates a MessageBox when the command is executed.

void OpenCmdExecuted(object target, ExecutedRoutedEventArgs e)
{
    String command, targetobj;
    command = ((RoutedCommand)e.Command).Name;
    targetobj = ((FrameworkElement)target).Name;
    MessageBox.Show("The " + command +  " command has been invoked on target object " + targetobj);
}
Private Sub OpenCmdExecuted(ByVal sender As Object, ByVal e As ExecutedRoutedEventArgs)
    Dim command, targetobj As String
    command = CType(e.Command, RoutedCommand).Name
    targetobj = CType(sender, FrameworkElement).Name
    MessageBox.Show("The " + command + " command has been invoked on target object " + targetobj)
End Sub

Комментарии

При выполнении RoutedCommand вызывается событие PreviewExecuted на целевом объекте команды.When a RoutedCommand executes, it raises the PreviewExecuted event on the command target. Если событие PreviewExecuted не обрабатывается, в целевом объекте команды возникает событие Executed.If the PreviewExecuted event is not handled, the Executed event is raised on the command target. Если целевой объект команды содержит CommandBinding для определенной команды, вызывается обработчик Executed для этого CommandBinding.If the command target has a CommandBinding for the specific command, the Executed handler for that CommandBinding is called. Если целевой объект команды не имеет CommandBinding для этой конкретной команды, Executed событие переносится вверх по дереву элементов, в котором выполняется поиск элемента с CommandBinding, связанным с командой.If the command target does not have a CommandBinding for that specific command the Executed event bubbles up the element tree searching for an element that has a CommandBinding associated with the command. Если CommandBinding не найден, команда не обрабатывается.If a CommandBinding is not found, the command is not handled.

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

Поле идентификатораIdentifier field ExecutedEvent
Стратегия маршрутизацииRouting strategy Восходящей маршрутизацииBubbling
ДелегатDelegate ExecutedRoutedEventHandler
  • Соответствующее событие туннелирования — PreviewExecuted.The corresponding tunneling event is PreviewExecuted.

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

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