MyNes_src/MyNes/MLV/ManagedListViewColumnsCollection.cs
2024-07-03 10:36:42 +08:00

120 lines
2.0 KiB
C#

using System.Collections.Generic;
namespace MLV;
public class ManagedListViewColumnsCollection : List<ManagedListViewColumn>
{
private ManagedListView owner;
public ManagedListViewColumnsCollection()
{
owner = null;
}
public ManagedListViewColumnsCollection(IEnumerable<ManagedListViewColumn> newColumns)
: base(newColumns)
{
owner = null;
}
public ManagedListViewColumnsCollection(ManagedListView owner)
{
this.owner = owner;
}
public ManagedListViewColumnsCollection(ManagedListView owner, IEnumerable<ManagedListViewColumn> 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<ManagedListViewColumn> comparer)
{
base.Sort(comparer);
if (owner != null)
{
owner.OnItemsCollectionSorted();
}
}
public new void Sort(int index, int count, IComparer<ManagedListViewColumn> comparer)
{
base.Sort(index, count, comparer);
if (owner != null)
{
owner.OnItemsCollectionSorted();
}
}
}