Поделиться через


ExecutedRoutedEventHandler Делегат

Определение

Представляет метод, обрабатывающий перенаправленные события Executed и PreviewExecuted, а также связанные присоединенные события.

public delegate void ExecutedRoutedEventHandler(System::Object ^ sender, ExecutedRoutedEventArgs ^ e);
public delegate void ExecutedRoutedEventHandler(object sender, ExecutedRoutedEventArgs e);
type ExecutedRoutedEventHandler = delegate of obj * ExecutedRoutedEventArgs -> unit
Public Delegate Sub ExecutedRoutedEventHandler(sender As Object, e As ExecutedRoutedEventArgs)

Параметры

sender
Object

Объект, к которому присоединен обработчик событий.

e
ExecutedRoutedEventArgs

Данные события.

Примеры

В этом примере создается ExecutedRoutedEventHandler объект , который задает свойство визуального элемента в целевом объекте при выполнении команды. В этом примере также содержится CanExecuteRoutedEventHandler для той же команды.

// ExecutedRoutedEventHandler for the custom color command.
private void ColorCmdExecuted(object sender, ExecutedRoutedEventArgs e)
{
    Panel target = e.Source as Panel;
    if (target != null)
    {
        if (target.Background == Brushes.AliceBlue)
        {
            target.Background = Brushes.LemonChiffon;
        }
        else
        {
            target.Background = Brushes.AliceBlue;
        }
    }
}

// CanExecuteRoutedEventHandler for the custom color command.
private void ColorCmdCanExecute(object sender, CanExecuteRoutedEventArgs e)
{
    if (e.Source is Panel)
    {
        e.CanExecute = true;
    }
    else
    {
        e.CanExecute = false;
    }
}
' ExecutedRoutedEventHandler for the custom color command.
Private Sub ColorCmdExecuted(ByVal sender As Object, ByVal e As ExecutedRoutedEventArgs)
    Dim target As Panel = TryCast(e.Source, Panel)
    If target IsNot Nothing Then
        If target.Background Is Brushes.AliceBlue Then
            target.Background = Brushes.LemonChiffon
        Else
            target.Background = Brushes.AliceBlue
        End If

    End If
End Sub

' CanExecuteRoutedEventHandler for the custom color command.
Private Sub ColorCmdCanExecute(ByVal sender As Object, ByVal e As CanExecuteRoutedEventArgs)
    If TypeOf e.Source Is Panel Then
        e.CanExecute = True
    Else
        e.CanExecute = False
    End If
End Sub

Комментарии

Этот делегат содержит логику реализации для RoutedCommand. Отделение логики реализации от команды позволяет вызывать команду из разных источников и типов, а также обеспечивает централизацию логики команд.

Этот делегат также используется для CommandManager.Executed и CommandManager.PreviewExecuted, которые являются присоединенными событиями CommandManager класса, реализующего большую часть инфраструктуры команд. Но большинство практических обработчиков будут обрабатывать Executed события из определенного CommandBinding, а не работать на CommandManager уровне .

В ExecutedRoutedEventArgsпри написании обработчика событий для перенаправленного события, которое является результатом выполнения команды, обычно представляют интерес следующие свойства:

  • Source сообщает о целевом объекте, в котором была выполнена команда. После выполнения команды можно также считать более общим в терминах Source перенаправленных событий объект , который вызвал перенаправленное событие.

  • Command сообщает о выполненной команде. Это свойство полезно при использовании привязок команд и при написании обработчиков, которые потенциально обрабатывают несколько команд.

  • Parameter сообщает о любых параметрах, относящихся к командам, которые были переданы выполняющейся командой. Не все команды используют или ожидают параметры, относящиеся к командам.

  • Handled сообщает, было ли перенаправленное событие, полученное в результате выполнения команды, уже обработано другим элементом в маршруте. Для перенаправленных обработчиков событий рекомендуется использовать обработчики, которые выполняют значимую работу при обработке события, чтобы задать значение Handledtrue. Это не позволяет типичным обработчикам события обрабатывать событие еще дальше по маршруту. Дополнительные сведения об обработке перенаправленных событий см. в разделах Маркировка перенаправленных событий как обработанных и Обработка классов.

Этот делегат также представляет обработчики для CommandManager.Executed и CommandManager.PreviewExecutedEvent, которые являются присоединенными событиями CommandManager класса, реализующего большую часть инфраструктуры команд. Но большинство практических обработчиков будут обрабатывать Executed события из определенного CommandBinding, а не работать на CommandManager уровне .

Дополнительные сведения о системе команд см. в разделе Общие сведения о системе команд.

Методы расширения

GetMethodInfo(Delegate)

Получает объект, представляющий метод, представленный указанным делегатом.

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

См. также раздел