动态添加事件处理程序,在字符串中具有委托名称

我需要以这种方式为对象分配一个eventHandler:

_Element.AddHandler(UIElement.MouseLeftButtonUpEvent, new RoutedEventHandler(Vars.Digit), true); 

但实际上,我只有一个字符串,其中包含Vars对象实例中的“Digit”或其他方法名称。

使用reflection或其他技巧可以实现这一点吗?

谢谢。

是的,您可以使用Type.GetMethod找到方法,使用Type.GetMethod查找事件,然后使用EventInfo.AddEventHandler添加处理程序。 它可能略显繁琐 – 并且会有很多地方可以进行error handling – 但它不应该太难。 如果您希望能够绑定非公共方法/事件,请不要忘记指定绑定标志。