WinForm程序用使用List对象绑定DataGridView数据源

Posted szsunny

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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();

  

以上是关于WinForm程序用使用List对象绑定DataGridView数据源的主要内容,如果未能解决你的问题,请参考以下文章

winform combobox绑定数据

WinForm 控件ComboBox数据绑定

winform datagridview 绑定 list .c#

WPF DataGrid 绑定到List集合

C# winform 类似于如下图显示用啥控件绑定并实现分页

在 WinForm 中将 List<T> 绑定到 DataGridView