我需要以这种方式为对象分配一个eventHandler:
_Element.AddHandler(UIElement.MouseLeftButtonUpEvent,
new RoutedEventHandler(Vars.Digit), true);
但实际上,我只有一个字符串,其中包含Vars对象实例中的“Digit”或其他方法名称。
使用反射或其他技巧可以实现这一点吗?
感谢。
答案 0 :(得分:2)
是的,您可以使用Type.GetMethod
找到方法,使用Type.GetEvent
找到事件,然后使用EventInfo.AddEventHandler
添加处理程序。它可能略显繁琐 - 并且会有很多地方可以进行错误处理 - 但它不应该太难。如果您希望能够绑定非公共方法/事件,请不要忘记指定绑定标志。