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很方便,如果是复杂操作,可能就有问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值