Динамически добавлять обработчик событий, имеющий имя делегата в строке - PullRequest
1 голос
/ 14 декабря 2009

Мне нужно назначить eventHandler для объекта следующим образом:

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

но на самом деле у меня есть только строка, содержащая "Digit" или другое имя метода в экземпляре объекта Vars.

Этого можно добиться с помощью отражения или другого трюка?

Спасибо.

1 Ответ

2 голосов
/ 14 декабря 2009

Да, вы можете найти метод с помощью Type.GetMethod и событие с помощью Type.GetEvent, а затем добавить обработчик с помощью EventInfo.AddEventHandler. Это может быть немного неудобно - и будет много мест для обработки ошибок - но это не должно быть слишком сложно. Не забудьте указать флаги привязки, если вы хотите иметь возможность связывать непубличные методы / события.

...