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
Объект, в котором подключен обработчик событий.
Данные события.
Примеры
В этом примере создается визуальное 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 сообщает, было ли перенаправленное событие, которое привело к выполнению команды, уже обработано другим элементом вдоль маршрута. Для перенаправленных обработчиков событий рекомендуется использовать обработчики, которые выполняют значимую работу при обработке события для задания Handled
true. Это предотвращает повторную обработку события обычными обработчиками по маршруту. Дополнительные сведения об обработке перенаправленных событий см. в разделе "Маркировка перенаправленных событий как обработанные" и "Обработка классов".
Этот делегат также представляет обработчики для CommandManager.Executed и CommandManager.PreviewExecutedEvent, которые являются присоединенными событиями в CommandManager классе, реализующим большую часть инфраструктуры команд. Но большинство практических обработчиков будут обрабатывать Executed события из определенного CommandBinding, а не работать на CommandManager уровне.
Дополнительные сведения о команде см. в разделе "Обзор команд".
Методы расширения
| Имя | Описание |
|---|---|
| GetMethodInfo(Delegate) |
Возвращает объект, представляющий метод, представленный указанным делегатом. |