Dev GridView 繫結List、BindingList 、BindingSource

衣舞晨風發表於2015-08-12

作者: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下載:點選開啟連結


 資料來源可以是實現下列介面之一的任何型別:


相關文章