ListView用于存储数据的集合类型是什么?

时间:2015-04-30 00:20:17

标签: c# .net user-interface data-structures dataset

我只需要知道listview用于存储其数据的集合类型。我在文档中看到它是自己特殊的集合(ListViewItemCollection)但是,这是另一种集合的分支还是它完全是ListViews独有的?

1 个答案:

答案 0 :(得分:0)

ListViewItemCollection被定义为ListView的内部类。

签名如下:

public class ListViewItemCollection : IList, ICollection, IEnumerable
{
    ...
}

在内部,它使用ListView.ListViewItemCollection.IInnerList来保存实际元素,并由ListViewNativeItemCollection实现。

具有以下特征:

internal class ListViewNativeItemCollection : ListViewItemCollection.IInnerList
{
    ...
}

IInnerList看起来像这样:

internal interface IInnerList
{
    int Count { get; }
    bool OwnerIsVirtualListView { get; }
    bool OwnerIsDesignMode{ get; }
    ListViewItem this[int index] { get; set; }
    ListViewItem Add(ListViewItem item);
    void AddRange(ListViewItem[] items);
    void Clear();
    bool Contains(ListViewItem item);
    void CopyTo(Array dest, int index);
    IEnumerator GetEnumerator();
    int IndexOf(ListViewItem item);
    ListViewItem Insert(int index, ListViewItem item);
    void Remove(ListViewItem item);
    void RemoveAt(int index);
}

看起来这是仿制前的所有日子。