IList 接口 :添加数据绑定功能
IList 接口 表示可以按照索引单独访问的对象的非泛型集合。通过IList接口,我们可以把集合当作排好序的、可索引的数据项的集合。IList接口是数据绑定中最重要的接口之一,因为复杂数据绑定只能帮定到实现了IList接口的集合上。使用指向IList接口的引用,可以通过添加、删除、插入和访问数据项等操作来管理集合中的数据。在.NET
2.0中,我们没有必要自己去实现IList接口,因为List<T>泛型类型为任何希望包含在集合中的类型提供了完整的实现。IList接口成员如表1-1所示
名称 |
类型 |
说明 |
this[int index] |
Object |
这个索引器可以用来通过索引位置使用数组符号来访问集合,从而读取或设置集合众的对象,同时也可以当作Item属性 |
int Add(object item) |
|
向集合中列表的末尾位置添加一个新项,并返回集合中这个新项的索引号 |
void Clear() |
|
清空集合中的所有项目,删除所有包含对象的引用,让这些对象可以被垃圾收集机制处理 |
bool Contains(object item) |
|
检查是否可以在集合中找到参数中传入的对象实例。如果能找到,则返回True,否则返回False |
int IndexOf(object Item) |
|
试图在集合中寻找在参数中传入的对象引用,如果这个对象在集合中,这个方法返回它在集合众的索引号。如果找不到,则返回-1 |
void Insert(int index,object Item) |
|
通过将新项插入到集合的特定位置。 |
void Remove(object Item) |
|
从集合众删除与传入对象引用匹配的项。 |
void RemoveAt(int index) |
|
基于方法参数指定的索引从集合众删除这个项 |
表1-1
Example1-1
List<int> myCollection=new List<int>();
myCollection.Add(38);
myCollection.Add(40);
Debug.Assert(myCollection.IndexOf(38)==0);
for(int i=0;i<myCollection.Count;i++)
{
myCollection[i]=99;
}
foreach(int val in myCollection)
{
Console.Writeline(“Value={0}”,val);
}
IList 接口在数据绑定方面也是有局限的,比如说,数据集合在绑定控件之外被修改了,控件不会知道这些修改,它显示的数据就不会与集合中包含的实际数据同步。要克服这个缺点,就必须在要用作数据绑定的集合上实现IBindingList接口。我们可能还需要在数据项对象类型上实现INotifyPropertyChanged接口。