<p>在MSDN上有英文的说明:<a href="http://msdn.microsoft.com/en-ca/library/ms404297(zh-cn).aspx">http://msdn.microsoft.com/en-ca/library/ms404297(zh-cn).aspx</a>,代码示例非常多。让自己的类实现IListSource接口之后,有一个好处,就是可以作为数据源方便地让GridView等数据控件直接绑定,如你的类的一个实例变量名为myClassInstance,ID为GridView1的GridView就可以这样绑定:</p>
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 &lt; this.ClockInDatas.Count; i++)
        {
            blcid.Add(this.ClockInDatas[i]);
        }
    }

    return blcid;
}
#endregion