如何实现 IListSource 接口

在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

 

Add comment

Loading