zoukankan      html  css  js  c++  java
  • WinForm程序用使用List对象绑定DataGridView数据源

         1、 在用List<T>对象绑定DataGridView数据源属性的时候,数据源的内容不会动态更新,如果List<T>对象集合中的数据发生变化,那么数据控件的数据源是不会得到更新的。
    一般也不建议用List<T>去填充数据显示控件的数据源。
         如果一定要用List<T>对象去绑定数据源,那么首先设置DataGridView的DataSource属性为new List<T>(),然后再将List<T>集合重新赋值给DataSource属性。这样既可解决同步更新问题。
    当DataGridView的DataSource绑定的为DataTable时,当DataTable的内容发生改变时,DataGridView中的内容会自动跟随DataTable改变而不用重新绑定数据源;
    
    (注:不能设置DataGridView的DataSource属性为null,否则会破坏DataGridView中已经设置好的列结构。)
    
         2、数据绑定后的添加删除问题:
    
     如果要对绑定在DataGridView中的List<T>进行数据的添加删除,先要把List<T>转换成BindingList<T>,
    
    再进行绑定:DataGridView1.DataSource=new BindingList<MyClass>(new List<MyClass>())。否则的话会产生许多意想不到的错误。
    
    如:初始绑定空数据后再添加数据绑定后,却取不到DataGridView.CurrentCell属性。

    List<URLListObject> rltList = new List<URLListObject>();
    
    rltList = this.AnalysisHTML();
    
    
    dataGridView1.DataSource = new BindingList<URLListObject>(rltList);
    
    //修改数据并刷新
                foreach (URLListObject per_o in rltList)
                {
                    per_o.finalUrl = BaseObjects.GetTheRedirectUrl(per_o.url);
                    
                }
                this.dataGridView1.Refresh();
    

      

  • 相关阅读:
    398. Random Pick Index
    382. Linked List Random Node
    645. Set Mismatch
    174. Dungeon Game
    264. Ugly Number II
    115. Distinct Subsequences
    372. Super Pow
    LeetCode 242 有效的字母异位词
    LeetCode 78 子集
    LeetCode 404 左叶子之和
  • 原文地址:https://www.cnblogs.com/sxypeace/p/5624158.html
Copyright © 2011-2022 走看看