(28条消息) (转载)C# 中DataGridView 绑定List<T>做数据源的操作问题

C# 中DataGridView 绑定List<T>做数据源的操作问题

若想将 List<T>作为DataGridView的数据源,然后后续还想继续操作的话,需要将List<T>赋值给BindingList对象,

然后直接将BindingList赋值给DataGridView.DataSource, 如此直接操作BindingList对象时,DataGridView的结果会动态随之更新。

1,绑定

  1. List<UserClass> listUserClass = new List<UserClass>();
  2. BindingList   BList<UserClass> ;
  3. listUserClass = this.UserMethodInitList(); //初始化
  4. BList = new BindingList<UserClass>( listUserClass);//赋值给BindingList对象,Form全局变量
this.DataGridView1.DataSource = BList; //将DataGridView里的数据源绑定成BindingList

2, 获取当前选定的行

  1. //获取行对象后
  2. List<UserClass> modiObj = this.DataGridView1.CurrentRow.DataBoundItem as UserClass;

3, 修改当前行

  1. //获取行对象后
  2. List<UserClass> modiObj = this.DataGridView1.CurrentRow.DataBoundItem as UserClass;
  3. modiObj .cost = 10; //修改值
  4. int pos = this.DataGridView1.CurrentRow.Index; //记位置
  5. this.BList.RemoveAt( pos); //删除行
  6. this.BList.Insert( pos, modiObj );//添加修改后的行到指定位置, 不指定位置默认添加到最后

 

4,删除行

  1. int pos = this.DataGridView1.CurrentRow.Index; //记位置
  2. this.BList.RemoveAt( pos); //删除行,操作BindingList对象即可更新DataGridview

 

 5,删除多行

  1. //允许删除多行
  2. DataGridViewSelectedRowCollection rows = this.DataGridView1.SelectedRows;
  3. foreach (DataGridViewRow row in rows)
  4. {
  5. this.BList.RemoveAt(row.Index);
  6. }

 

 

6, 返向转换

  1. BindingList<UserClass> Blist = (BindingList<UserClass>) this.DataGridView1.DataSource;
  2. List<UserClass> list1 = List<UserClass>( Blist);

 

https://www.cnblogs.com/sxypeace/p/5640647.html

(0)

相关推荐