原文地址:http://hi.baidu.com/netyro/item/7340640e36738a813c42e239
今天做项目时遇到一个挠头的问题,当DataGridView的数据源为泛型集合时,集合内容改变后,DataGridView的显示内容却不能同步更新,在网上找了N久,也没有找到解决办法,误打误撞下发现一中支持数据绑定的泛型集合BindingList<>,该集合完美的解决了普通泛型集合内容更新后,DataGridView内容却无法更新的弊端。
详细情况如下:
界面中有两个DataGridView控件,需求是点击上面DataGridView中的某行记录时,就将该记录添加到下面的DataGridView中,刚开始两个DataGridView都分别使用一个泛型集合List<>作为数据源,当点击上方DataGridView中的某行记录时,就将该行对应的实体保存到下方DataGridView的数据源集合中,可是下方的DataGridView却永远只能显示一条记录,界面中间的对话框中有两个数字,第一个是“1”,指的是当前下方DataGridView只有一行记录,第二个是“2”,指的是下方DataGridView的数据源集合中的实体个数,也就是说集合中有两条记录可是下方DataGridView中只显示了第一次点击上方DataGridView时添加进去的记录
那么将下方DataGridView的数据源换成BindingList<>之后呢
添加成功!!!
网上有很多方法都很麻烦,如使用BindingSource等等,其实最简单的莫过于使用支持数据绑定的泛型集合BindingList<> ,将下方DataGridView的数据源改为BindingList<>后,就实现的数据的同步更新