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

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

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

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

具体类代码如下:

 

[csharp] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. public class FormItem  
  2. {  
  3.     /// <summary>  
  4.     /// 标识   
  5.     /// </summary>  
  6.     public string ItemKey  
  7.     {  
  8.         get;  
  9.         set;  
  10.     }  
  11.     /// <summary>  
  12.     /// 名称    
  13.     /// </summary>  
  14.     public string Name  
  15.     {  
  16.         get;  
  17.         set;  
  18.     }  
  19.     /// <summary>  
  20.     /// 是否可用  
  21.     /// </summary>  
  22.     public bool Enable  
  23.     {  
  24.         get;  
  25.         set;  
  26.     }  
  27. }  

3、在Form窗体上增加一个Buntton按钮事件,并添加Click事件,在Click事件中填充List<T>、BindingList <T>、BindingSource,并进行绑定测试:

 

 

[csharp] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. BindingList<FormItem> itemsBindingList = new BindingList<FormItem>();  
  2.        List<FormItem> itemsList = new List<FormItem>();  
  3.        BindingSource bs = new BindingSource();  
  4.        private void simpleButton1_Click(object sender, EventArgs e)  
  5.        {  
  6.            for (int i = 0; i < 10; i++)  
  7.            {  
  8.                FormItem fi = new FormItem();  
  9.                fi.ItemKey = i.ToString();  
  10.                fi.Name = Guid.NewGuid().ToString();  
  11.                if (i % 2 == 0)  
  12.                {  
  13.                    fi.Enable = true;  
  14.                }  
  15.                else  
  16.                {  
  17.                    fi.Enable = false;  
  18.                }  
  19.                itemsBindingList.Add(fi);  
  20.                itemsList.Add(fi);  
  21.                bs.Add(fi);  
  22.            }            
  23.            //this.gridControl1.DataSource = itemsBindingList;  
  24.            //this.gridControl1.DataSource = itemsList;  
  25.            this.gridControl1.DataSource = bs;  
  26.   
  27.        }  

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下载:点击打开链接

 

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

posted @ 2016-10-05 14:51  天涯海角路  阅读(209)  评论(0)    收藏  举报