Прочитать на английском

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


ExecutedRoutedEventHandler Делегат

Определение

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

public delegate void ExecutedRoutedEventHandler(object sender, ExecutedRoutedEventArgs e);

Параметры

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;
    }
}

Комментарии

Этот делегат содержит логику реализации для 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)

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

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

Продукт Версии
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

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