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