Dev GridView 绑定Listlt;Tgt;、BindingList lt;Tgt;、BindingSource
作者: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下載:點擊打開鏈接
?數據源可以是實現下列接口之一的任何類型:
IList?接口,包括一維數組。List<T>等!
IListSource?接口,例如,DataTable?和?DataSet?類。
IBindingList?接口,例如,BindingList?類。
IBindingListView?接口,例如,BindingSource?類。
總結
以上是生活随笔為你收集整理的Dev GridView 绑定Listlt;Tgt;、BindingList lt;Tgt;、BindingSource的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【翻译】Ext JS最新技巧——2015
- 下一篇: 013实现使用两个堆栈队列(keep i