using System.Collections.Generic; namespace MLV; public class ManagedListViewColumnsCollection : List { private ManagedListView owner; public ManagedListViewColumnsCollection() { owner = null; } public ManagedListViewColumnsCollection(IEnumerable newColumns) : base(newColumns) { owner = null; } public ManagedListViewColumnsCollection(ManagedListView owner) { this.owner = owner; } public ManagedListViewColumnsCollection(ManagedListView owner, IEnumerable newColumns) : base(newColumns) { this.owner = owner; } public new void Add(ManagedListViewColumn item) { base.Add(item); if (owner != null) { owner.OnColumnAdded(); } } public new void Insert(int index, ManagedListViewColumn item) { base.Insert(index, item); if (owner != null) { owner.OnColumnAdded(); } } public new void Clear() { base.Clear(); if (owner != null) { owner.OnColumnsCollectionCleared(); } } public new bool Remove(ManagedListViewColumn item) { bool result = base.Remove(item); if (owner != null) { owner.OnItemRemoved(); } return result; } public new void RemoveAt(int index) { base.RemoveAt(index); if (owner != null) { owner.OnItemRemoved(); } } public ManagedListViewColumn GetColumnByID(string id) { using (Enumerator enumerator = GetEnumerator()) { while (enumerator.MoveNext()) { ManagedListViewColumn current = enumerator.Current; if (current.ID == id) { return current; } } } return null; } public new void Sort() { base.Sort(); if (owner != null) { owner.OnItemsCollectionSorted(); } } public new void Sort(IComparer comparer) { base.Sort(comparer); if (owner != null) { owner.OnItemsCollectionSorted(); } } public new void Sort(int index, int count, IComparer comparer) { base.Sort(index, count, comparer); if (owner != null) { owner.OnItemsCollectionSorted(); } } }