我以为我对事件处理有很好的了解,直到现在我正在阅读这篇提到事件侦听器的路由事件概述
这是我的理解
<!-- Sources -->
<Button x:Name="aButton" Click="MyHandler" />
or
<asp:Button ID="aButton" OnClick="MyHanlder" />
//handler
protected void MyHanlder(object source, EventArgs e)
{
}
从文档中,"路由事件"部分下有此语句
该事件可以在元素树根目录上调用侦听器上的处理程序,然后路由到 沿树节点节点的连续子元素路由到作为事件源的节点元素
从我上面显示的代码中我知道这些(如果我错了,请纠正我):
- 事件处理程序
MyHanlder(....)
- 事件源为
aButton
问题是我不明白这里的事件侦听器是什么
事件侦听器只是事件处理程序的另一个名称。
从带有处理程序的对象的角度来看,它有一个处理程序。
(此对象实现处理程序。
的对象的角度来看,它是一个侦听器。
(此对象调用侦听器。
它们是一回事。
Event listner是布局中的一个元素,如下所示: http://msdn.microsoft.com/en-us/library/ms742806.aspx
路由事件侦听器和路由事件源不需要共享 其层次结构中的常见事件。任何UIElement或ContentElement都可以 成为任何路由事件的事件侦听器。因此,您可以使用 在整个工作 API 中可用的全套路由事件集设置为 一个概念性的"接口",其中应用程序中的不同元素 可以交换事件信息。这种"接口"概念用于路由 事件特别适用于输入事件。