BindingList 看起來很美

最近有同事迷上了使用BindingList開發應用,看上去用BindingList綁定datagridview很是省事,只要如下即可:  

 BindingList<T> x = new BindingList<T>();

     ....   datagridivew1.datasource = x;  

datagridiew1.columns["name'].DataPropertyName = "Name"; 

    ...    T = datagridview1.selectedrows[0].boundItem as T;  

 

列表控件的信息就可以和對象集合的信息“同步”,但經過檢查發現,這個同步是單向的,列表控件數據變更或增加,可以通過事件通知到對象集合,而對象集合內的數據變更或增減列表控件無法變更,(後來試驗了一下,有時需要對datagridview進行刷新纔會更新,但對象增減應該可以同步)而且我在檢查其代碼時發現瞭如下有趣現象: 

 1. 如果列表控件使用了cellvalidating事件,在出現e.cancel=true時, 系統會經常報錯,估計是後面的對象清單取消操作時的問題

  2 . BindingList本身不具備排序功能,如果重寫applysort方法,需要處理一堆問題.

所以簡單的操作用bindinglist很方便,如果是複雜操作,可能就有問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章