Я хочу добавить событие в универсальный класс List в C #, чтобы обрабатывать изменения элементов списка в случае добавления или удаления нового элемента. Я создаю класс и наследую его от класса List. Поскольку методы Add, Insert и Remove этого класса не могут быть переопределены, я определяю новые методы Add, Insert и Remove по новому ключевому слову, вызываю родительские методы и затем вызываю мое событие. Я использовал этот класс как свойство в пользовательском элементе управления. В режиме разработки, когда я меняю коллекцию с предоставленным графическим интерфейсом в .net development studio, событие не работает. Как я могу решить эту проблему?
Вот пример определения такого класса
public class SelectorItemCollection : List<SelectorItem>
{
public new void Add(SelectorItem Item)
{
//Call parent method
base.Add(Item);
//Raise changing event
this.OnCollectionChanged();
}
}
Я определил свойство в своем классе пользовательских элементов управления следующим образом:
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public SelectorItemCollection Items { get; }
Мое желаемое состояние: когда я изменяю элементы в этом диалоговом окне, я хочу вызвать изменяющееся событие из класса коллекции.