Перерегистрация обработчика для события с наследованием (добавьте дополнительное поведение в обработчик из базового класса) - PullRequest
1 голос
/ 10 сентября 2011

Если я унаследую от базового класса, который обрабатывает какое-то событие, например LeftMouseDownButton, и я перерегистрирую другой обработчик для того же события, будут ли вызваны оба обработчика (если я установлю e.Handled = false).Итак, я хочу, чтобы и поведение обработчика базового класса, и мой обработчик были вызваны?То есть я хочу добавить дополнительное поведение в базовый обработчик

1 Ответ

0 голосов
/ 10 сентября 2011

Вам лучше не вызывать несколько обработчиков.

Если у вас есть доступ к исходному коду базового класса, вы можете сделать обработчик виртуальным методом, а затем переопределить его в производном классе. Сделайте так, чтобы производный класс вызывал базовый класс, чтобы у вас была возможность выполнить функциональность базового класса, а затем пометил ваши дополнительные действия. Если у вас нет доступа к исходному коду базового класса, то, я думаю, вы застряли с необходимостью добавить дополнительный обработчик, и вполне вероятно, что обработчик базового класса будет вызываться раньше вашего собственного обработчика, потому что он будет зарегистрирован первым.

...