在MSDN上有英文的说明:http://msdn.microsoft.com/en-ca/library/ms404297(zh-cn).aspx,代码示例非常多。让自己的类实现IListSource接口之后,有一个好处,就是可以作为数据源方便地让GridView等数据控件直接绑定,如你的类的一个实例变量名为myClassInstance,ID为GridView1的GridView就可以这样绑定:
this.GridView1.DataSource = myClassInstance;
this.GridView1.DataBind();
要点归纳如下:
首先要引入 System.ComponentModel 命名空间,即在类文件的顶部加上
using System.ComponentModel;
然后在类的声明后面添加继承自 Component 和 IListSource 的声明。例如:
public class ClockInDataCollection : Component, IListSource
最后,在这个类里,用自己的逻辑实现接口的两个成员,例如:
#region IListSource Members
bool IListSource.ContainsListCollection
{
get
{
return false;
}
}
System.Collections.IList IListSource.GetList()
{
// 以下替换成自己的逻辑
BindingList<ClockInData> blcid = new BindingList<ClockInData>();
if (!this.DesignMode)
{
for (int i = 0; i < this.ClockInDatas.Count; i++)
{
blcid.Add(this.ClockInDatas[i]);
}
}
return blcid;
}
#endregion