C# 中DataGridView 綁定List 做數據源的操作問題


若想將 List<T>作為DataGridView的數據源,然后后續還想繼續操作的話,需要將List<T>賦值給BindingList對象,

然后直接將BindingList賦值給DataGridView.DataSource, 如此直接操作BindingList對象時,DataGridView的結果會動態隨之更新。

1,綁定

List<UserClass>  listUserClass = new List<UserClass>();
BindingList   BList<UserClass> ;
listUserClass = this.UserMethodInitList(); //初始化

BList = new BindingList<UserClass>( listUserClass);//賦值給BindingList對象,Form全局變量
this.DataGridView1.DataSource = BList; //將DataGridView里的數據源綁定成BindingList

2, 獲取當前選定的行

//獲取行對象后
List<UserClass> modiObj = this.DataGridView1.CurrentRow.DataBoundItem as UserClass;

3, 修改當前行

復制代碼
//獲取行對象后
List<UserClass> modiObj = this.DataGridView1.CurrentRow.DataBoundItem as UserClass;

modiObj .cost = 10; //修改值

int  pos = this.DataGridView1.CurrentRow.Index; //記位置

this.BList.RemoveAt( pos); //刪除行

this.BList.Insert( pos, modiObj );//添加修改后的行到指定位置, 不指定位置默認添加到最后
復制代碼

4,刪除行

int  pos = this.DataGridView1.CurrentRow.Index; //記位置

this.BList.RemoveAt( pos); //刪除行,操作BindingList對象即可更新DataGridview

 5,刪除多行

復制代碼
            //允許刪除多行

            DataGridViewSelectedRowCollection rows = this.DataGridView1.SelectedRows;

            foreach (DataGridViewRow row in rows)

            {

                this.BList.RemoveAt(row.Index);

            }
復制代碼

 

6, 返向轉換

BindingList<UserClass> Blist = (BindingList<UserClass>) this.DataGridView1.DataSource;


List<UserClass> list1 = List<UserClass>( Blist);

 

 
分類:  C#


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM