ExecutedRoutedEventHandler 委托
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示将处理 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,为从执行的命令生成的路由事件编写事件处理程序时,通常需要关注以下属性:
Command 报告执行的命令。 如果使用命令绑定,并且编写可能处理多个命令的处理程序,则此属性非常有用。
Parameter 报告执行命令传递的任何特定于命令的参数。 并非所有命令都使用或预期命令特定的参数。
Handled 报告执行命令导致的路由事件是否已由路由上的其他元素处理。 对于路由事件处理程序,建议在处理要设置为 Handled
true
的事件时让处理程序执行有意义的工作。 这可以防止事件的典型处理程序再次沿路由进一步处理事件。 有关处理路由事件的详细信息,请参阅 将路由事件标记为已处理和类处理。
此委托还表示 和 CommandManager.PreviewExecutedEvent的CommandManager.Executed处理程序,它们是实现大部分命令基础结构的类上的CommandManager附加事件。 但大多数实际处理程序将处理 Executed 来自特定 CommandBinding的事件,而不是在 CommandManager 级别工作。
有关命令的详细信息,请参阅命令概述。
扩展方法
GetMethodInfo(Delegate) |
获取指示指定委托表示的方法的对象。 |