using System.Collections; namespace System.Windows.Forms { public partial class ListView { public class ColumnHeaderCollection : CollectionBase { private ListView owner; public ColumnHeader this[int index] => InnerList[index] as ColumnHeader; public void Add(ColumnHeader column) { column.SetOwner(owner); column.SetBinding(InnerList.Count); InnerList.Add(column); owner.GridView.Columns.Add(column.column); } public void Add(string text) => Add(new ColumnHeader() { Text = text }); public void AddRange(ColumnHeader[] items) { foreach (var item in items) Add(item); } public void Remove(ColumnHeader column) { InnerList.Remove(column); owner.GridView.Columns.Remove(column.column); } public new void RemoveAt(int index) { InnerList.RemoveAt(index); owner.GridView.Columns.RemoveAt(index); } public new void Clear() { InnerList.Clear(); owner.GridView.Columns.Clear(); } public int IndexOf(ColumnHeader column) => InnerList.IndexOf(column); internal ColumnHeaderCollection(ListView owner) { this.owner = owner; } } } }