using System.Collections; namespace System.Windows.Forms { public partial class ListViewItem { public class ListViewSubItemCollection : CollectionBase { private ListViewItem listViewItem; public ListViewSubItem this[int index] => index < 0 || index >= InnerList.Count ? null : InnerList[index] as ListViewSubItem; public void Add(ListViewSubItem item) { InnerList.Add(item); listViewItem.RaisePropertyChanged(nameof(SubItems)); } public void Add(string text) => Add(new ListViewSubItem() { Text = text }); public void AddRange(string[] items) { foreach (var item in items) Add(item); } public new void Clear() { base.Clear(); Add(""); } internal ListViewSubItemCollection(ListViewItem listViewItem) { this.listViewItem = listViewItem; Clear(); } } } }