开发者

Add event handler dynamically having the delegate name in a string

开发者 https://www.devze.com 2022-12-14 10:47 出处:网络
I n开发者_如何学编程eed to assign an eventHandler to an object, in this way: _Element.AddHandler(UIElement.MouseLeftButtonUpEvent,

I n开发者_如何学编程eed to assign an eventHandler to an object, in this way:

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

but, in fact, I only have a string that contains "Digit" or other method name in the Vars object instance.

It is possible to achieve this using reflection or other kind of trick?

Thanks.


Yes, you can find the method with Type.GetMethod, and the event with Type.GetEvent, then add a handler with EventInfo.AddEventHandler. It may be slightly fiddly - and there'll be a lot of places to put error handling - but it shouldn't be too hard. Don't forget to specify binding flags if you want to be able to bind non-public methods/events.

0

精彩评论

暂无评论...
验证码 换一张
取 消