Dev GridView 绑定List<T>、BindingList <T>、BindingSource

简介: 作者:jiankunking 出处:http://blog.csdn.net/jiankunking        今天听到同事处理数据结构的时候特意处理为了 BindingList<T>,据说可以直接绑定到Dev GridView上,于是测试了一下: 1、在Dev GridView中新增三列,三列的FieldName分别对应与FormItem类对应:ItemKey、Name

作者:jiankunking 出处:http://blog.csdn.net/jiankunking

        今天听到同事处理数据结构的时候特意处理为了 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下载:点击打开链接


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


目录
相关文章
Dev GridView 绑定List&lt;T&gt;、BindingList &lt;T&gt;、BindingSource
今天听到同事处理数据结构的时候特意处理为了 BindingList&lt;T&gt;,据说可以直接绑定到Dev GridView上,于是测试了一下: 1、在Dev GridView中新增三列,三列的FieldName分别对应与FormItem类对应:ItemKey、Name、Enable 具体类代码如下: public class FormItem { /// &lt;summ
1620 0
|
移动开发
winform:对dataGridView绑定的泛型List<T> 的简单CRUD
   创建对象类,为所有成员封装字段,然后重载该类; 根据已有的对象类(类型参数)创建一个长度可以变化的List数组,并绑定数据源; 设置dataGridView的column属性:对应四个对象类创建相应列并用Name属性进行绑定; button_onclick事件点击处理;      ...
1471 0
DataGridView中绑定List泛型的问题
1、数据绑定的问题:  当DataGridView的DataSource绑定的为DataTable时,当DataTable的内容发生改变时,DataGridView中的内容会自动跟随DataTable改变而不用重新绑定数据源;   而把List绑定到DataGridView则不然,当List的内容发生改变是,需要先设置DataGridView的DataSource属性为new List(),   然后再把作过改动的List重新赋于DataGridView的DataSource。
807 0
|
5月前
|
安全 Java
java线程之List集合并发安全问题及解决方案
java线程之List集合并发安全问题及解决方案
927 1
|
4月前
|
Java API Apache
怎么在在 Java 中对List进行分区
本文介绍了如何将列表拆分为给定大小的子列表。尽管标准Java集合API未直接支持此功能,但Guava和Apache Commons Collections提供了相关API。
|
4月前
|
运维 关系型数据库 Java
PolarDB产品使用问题之使用List或Range分区表时,Java代码是否需要进行改动
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
4月前
|
存储 安全 Java
详解Java中集合的List接口实现的ArrayList方法 | Set接口实现的HashSet方法
详解Java中集合的List接口实现的ArrayList方法 | Set接口实现的HashSet方法
|
5月前
|
Java API
使用 Java 来实现两个 List 的差集操作
使用 Java 来实现两个 List 的差集操作
148 3