Dev GridView 绑定List、BindingList 、BindingSource

今天听到同事处理数据结构的时候特意处理为了 BindingList<T>,据说可以直接绑定到Dev GridView上,于是测试了一下:

1、在Dev GridView中新增三列,三列的FieldName分别对应与FormItem类对应:ItemKey、Name、Enable

具体类代码如下:

public class FormItem
{
    /// <summary>
    /// 标识 
    /// </summary>
    public string ItemKey
    {
        get;
        set;
    }
    /// <summary>
    /// 名称  
    /// </summary>
    public string Name
    {
        get;
        set;
    }
    /// <summary>
    /// 是否可用
    /// </summary>
    public bool Enable
    {
        get;
        set;
    }
}
3、在Form窗体上增加一个Buntton按钮事件,并添加Click事件,在 Click事件中填充List<T>、BindingList <T>、BindingSource,并进行绑定测试:

 BindingList<FormItem> itemsBindingList = new BindingList<FormItem>();
        List<FormItem> itemsList = new List<FormItem>();
        BindingSource bs = new BindingSource();
        private void simpleButton1_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < 10; i++)
            {
                FormItem fi = new FormItem();
                fi.ItemKey = i.ToString();
                fi.Name = Guid.NewGuid().ToString();
                if (i % 2 == 0)
                {
                    fi.Enable = true;
                }
                else
                {
                    fi.Enable = false;
                }
                itemsBindingList.Add(fi);
                itemsList.Add(fi);
                bs.Add(fi);
            }          
            //this.gridControl1.DataSource = itemsBindingList;
            //this.gridControl1.DataSource = itemsList;
            this.gridControl1.DataSource = bs;

        }
4、通过测试发现List<T>、BindingList <T>、BindingSource均可以绑定到Dev GridView上 

5、用过Dev GridView的朋友应该知道,给Dev GridView绑定DataTable后,在GridView上的修改会同步到到DataTable上,那么问题来了Dev GridView 绑定List<T>、BindingList <T>、BindingSource会不会同步呢?

于是添加GridView的CellValueChanged事件,在该事件中监视变量itemsBindingList、itemsList、bs,可以发现修改也是同步的。

小注:
BindingSource第一次用,有不对的地方,还请指教

        demo下载:点击打开链接


 数据源可以是实现下列接口之一的任何类型:

  • IList 接口,包括一维数组。List<T>等!

  • IListSource 接口,例如,DataTable 和 DataSet 类。

  • IBindingList 接口,例如,BindingList 类。

  • IBindingListView 接口,例如,BindingSource 类。


你可能感兴趣的:(list,绑定,GridView,BindingList,BindingSource)