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();