Должен ли производный класс обрабатывать события базового класса? (C # / WPF) - PullRequest
4 голосов
/ 13 августа 2010

Я создаю класс, производный от элемента управления WPF RichTextBox, и мне нужно выполнить некоторый код в событиях копирования и вставки.

Я понимаю, что, когда это возможно, рекомендуется реализовывать код на основе событий в производном классе, переопределяя метод базового класса, который вызывает событие. Однако в этом случае такого метода не существует, поэтому допустимо ли для моего производного класса добавлять обработчик событий в свои события базового класса?

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

Есть предложения, пожалуйста?

Спасибо, Тим

1 Ответ

4 голосов
/ 13 августа 2010

Конечно, вы можете обрабатывать события базового класса. Это обычно делается для события Loaded, например, поскольку нет метода OnLoaded.

Вам не нужно беспокоиться об удалении обработчика: поскольку издатель событий и подписчик - это один и тот же экземпляр, отсутствие удаления обработчика не помешает GC собрать ваш объект.

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