C# 动态添加事件处理程序,使委托名称位于字符串中
我需要通过以下方式将eventHandler分配给对象:C# 动态添加事件处理程序,使委托名称位于字符串中,c#,reflection,.net-3.5,event-handling,C#,Reflection,.net 3.5,Event Handling,我需要通过以下方式将eventHandler分配给对象: _Element.AddHandler(UIElement.MouseLeftButtonUpEvent, new RoutedEventHandler(Vars.Digit), true); 但是,事实上,我在Vars对象实例中只有一个包含“Digit”或其他方法名的字符串 是否可以使用反射或其他技巧来实现这一点 谢谢。是的,您可以使用查找方法,使用查找事件,然后使用添加处理程序。它可能有点复杂,并且有很多地方可以放置错误处
_Element.AddHandler(UIElement.MouseLeftButtonUpEvent,
new RoutedEventHandler(Vars.Digit), true);
但是,事实上,我在Vars对象实例中只有一个包含“Digit”或其他方法名的字符串
是否可以使用反射或其他技巧来实现这一点
谢谢。是的,您可以使用查找方法,使用查找事件,然后使用添加处理程序。它可能有点复杂,并且有很多地方可以放置错误处理,但它不应该太难。如果希望能够绑定非公共方法/事件,请不要忘记指定绑定标志。谢谢,但是有了对象的实例(代码段中的变量),我如何告诉_Element.AddHandler指向此特定对象的名为“Digit”的方法?再次感谢Jon。使用
Vars.GetType()
获取包含要为其添加处理程序的方法的类型,并使用\u Element.GetType()
查找包含事件的类型AddEventHandler
获取一个对象,该对象是代理的“目标”-在您的情况下,这将是Vars
。