Ну, у вас здесь два подобных событиям поля.Ваше переопределение будет переопределять часть добавления / удаления, но у вас будет два поля - одно в TableMain
и одно в TableSub
.Только значение в TableSub
будет ненулевым, если только значение не установлено явно в TableMain
... поэтому, если TableMain
попытается вызвать событие само, оно не вызовет тот же набор обработчиков.как в TableSub
.По сути, он будет вести себя странно.
Правильный подход - предоставить защищенный метод в TableMain
, позволяющий событию вызываться подклассами:
protected void OnUpdateFilter()
{
Action handler = UpdateFilter;
if (handler != null)
{
handler();
}
}
Затем создайте событиене виртуальный, и удалите переопределение в TableSub
.
Обратите внимание, что ваша подпись события не соответствует обычному соглашению для событий - любая причина не использовать EventHandler
?