-2

当我们使用 GetType(RoutedEventHandler) 或 GetType(RoutedEventArgs) 注册自定义路由事件时有什么区别??

例1:

 Public Shared ReadOnly TextChangedEvent As RoutedEvent =   EventManager.RegisterRoutedEvent("TextChanged", _
               RoutingStrategy.Bubble, GetType(RoutedEventArgs), GetType(MyCustomTextBlock))

例2:

 Public Shared ReadOnly TextChangedEvent As RoutedEvent = EventManager.RegisterRoutedEvent("TextChanged", _
               RoutingStrategy.Bubble, GetType(RoutedEventHandler), GetType(MyCustomTextBlock))
4

1 回答 1

0

当您注册 RoutedEvent 时,您必须提供许多参数,包括委托类型。

来自 MSDN

public static RoutedEvent RegisterRoutedEvent(
       string name,
       RoutingStrategy routingStrategy,
       Type handlerType, // see note below.
       Type ownerType )

handlerType

类型:System.Type

事件处理程序的类型。这必须是委托类型,不能为空。


选择类型

因此,您的第一个示例(ex1)使用了不正确的类型。您没有通过 EventArgs。相反,您传递一个委托类型。.NET 中有许多委托类型,但在这种情况下,您应该使用从 RoutedEvent args 派生的一种。

于 2013-05-12T20:16:22.563 回答