WPF XAML Intellisense对自定义路由事件处理程序无法正常工作

时间:2009-12-07 06:33:41

标签: wpf xaml intellisense

我使用以下构造(名称已更改)定义了自定义路由事件:

public class MyRoutedEventArgs:RoutedEventArgs {...}

public delegate void MyRoutedEventHandler(Object sender,MyRoutedEventArgs args);

public static readonly RoutedEvent MyEvent;

MyClass.MyEvent =                 EventManager.RegisterRoutedEvent(“MyEvent”,RoutingStrategy.Tunnel,typeof(MyRoutedEventHandler),typeof(MyClass));

接下来,我正在创建一个CLR事件包装器:

公共事件MyRoutedEventHandler MyEvent {             添加{AddHandler(MyEvent,value); }             remove {RemoveHandler(MyEvent,value); }         }

问题是当我如上所示定义它时,XAML intellisense不能用于自动生成处理程序方法体。我注意到,如果你改变你的CLR事件包装器使用通用的RoutedEventHandler类型,一切正常!但是在这种情况下,自动生成的方法获得一个通用的RoutedEventArgs(好吧,正确地对应于RoutedEventHandler),这迫使我手动将其重写为MyRoutedEventArgs。

1 个答案:

答案 0 :(得分:1)

我认为这是你必须忍受的限制。但是,您需要做的就是,一旦自动生成泛型类型的事件处理程序,就更改生成方法的签名以使用MyRoutedEventArgs而不是RoutedEventArgs。虽然仍然很难看(我们不应该被迫这样做)但我认为这不是一个大问题。

有人试过VS 2010吗?