[转] BindingList解决Datagridview.Datasource不刷新界面问题

   C# winform datagridview网格控件 datasource用于绑定数据,但修改数据源后重新绑定并不会刷新界面。除非把datasource置为null并重新绑定,但会造成网格列丢失。其实可用BindingList类来替换datatable或list并绑定到datasource。

代码片段示例如下:

    BindingList<ScrewGroupItem> screwGroup = new BindingList<ScrewGroupItem>();//本组数据

  dgvScrews.DataSource = screwGroup;//绑定一次即可

 

  //注意下面代码执行后,界面会生成相关数据行

     for (int i = 1; i <= 5; i++)
            {
                ScrewGroupItem item = new ScrewGroupItem();
                item.Num = i;
                item.Torques = 0.00f;
                item.Angles = 0.00f;
                item.Result = "N/A";
                screwGroup.Add(item);
            }

  //执行清空后,网格界面行也会被清空,用起来相当方便

 this.screwGroup.Clear();

 

 

注意事项

net framework4.0以上有些人会使用ObservableCollection<XX>来替代,特别是wpf。但对于3.5框架,用BindingList也能达到效果。

 

IT记事本    发表于 2016/11/2 22:43:34    浏览:185
www.itnotepad.cn版权所有,其他平台未经同意请勿转载/抓取

posted @ 2017-03-02 12:03  Net-Spider  阅读(2621)  评论(0)    收藏  举报