0

下面是我窗口中的构造函数和事件处理程序。

    public MyWindow() {
        InitializeComponent();

        foreach (RoutedEvent routedEvent in EventManager.GetRoutedEvents())
        {
            EventManager.RegisterClassHandler(typeof(TestUnbuggerWindow), routedEvent, OnRoutedEvent, true);
        }
    }

    public void OnRoutedEvent(Object sender, RoutedEventArgs args)
    {
    }

我正在尝试预览所有事件,因为我正在学习 WPF,我认为这可能会暴露一些看不见的情况。无论如何,我收到以下构建错误:

Error   1   The best overloaded method match for 'System.Windows.EventManager.RegisterClassHandler(System.Type, System.Windows.RoutedEvent, System.Delegate, bool)' has some invalid arguments
Error   2   Argument 3: cannot convert from 'method group' to 'System.Delegate'

我得到了从这个网站注册所有事件的循环。

我相信问题是由方法签名不匹配引起的,但我不确定。有人可以为我解释一下吗?

4

1 回答 1

1

您需要明确使用处理程序

EventManager.RegisterClassHandler(typeof(TestUnbuggerWindow), 
     routedEvent, new RoutedEventHandler(OnRoutedEvent), true);

这是因为您的编译器需要知道您想要什么类型的处理程序,并且由于签名采用一种Delegate类型,因此它无法推断出您想要的类型RoutedEventHandler

于 2012-05-24T02:37:18.507 回答