Передать событие в конструктор - PullRequest
2 голосов
/ 04 июня 2010

У меня есть класс, который я хочу иметь возможность обрабатывать событие мыши для сетки.

Я пытался создать его с помощью статического вызова метода, например:

MyDataBinding.BindObjectsToDataGrid(ListOfObjectsToBind, myGrid.MouseUp);

Конечная цель заключается в том, чтобы в методе я назначил делегата для MouseUp

PassedInMouseUp += myMethodThatWillHandleTheMouseUp;

Хорошо выглядит здесь (для меня), но компилятор задыхается в первой строке. Это говорит о том, что я могу использовать MouseUp только с + = или - -.

Очевидно, я иду по этому пути неправильно. Как получить другой класс для работы с мышью без необходимости:

  • Проход по всей сетке
  • Представьте метод, который будет обрабатывать мышь, как открытый метод.

Или это всего лишь ограничение, и мне придется выполнить одно из вышеперечисленных?

1 Ответ

1 голос
/ 04 июня 2010

Это невозможно без отражения.

Как и свойства, события .Net компилируются в пару методов доступа - add_EventName и remove_EventName. Там нет ничего, что вы можете передать в качестве аргумента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...