2009-07-12 119 views
1

我有一個對象,它有一個屬性,一個List。我想將數據網格綁定到該列表,這樣當我將對象添加到網格時,數據網格就會更新。我想:爲什麼我的數據網格不能更新?

myDataGrid.DataSource = myObject.MyList; 

但是當我更新與新行的數據源,網格不會更新。

然後我嘗試:

myDataGrid.DataSource = null; 
myDataGrid.DataSource = myObject.MyList; 

我每次添加一個項目時調用上面的代碼。這在點擊網格時導致了一個錯誤(特別是,索引-1沒有數據,與內部的datagridview.get_current有關。儘管事實上我沒有點擊第-1行)。

於是我嘗試:

myDataGrid.DataBindings.Add(new Binding("DataSoruce",myObject,"MyList",false,DataSourceUpdateMode.OnPropertyChanged)); 

這並沒有反映任何更新,所以我說:

myDataGrid.DataBindings[0].ReadValue(); 

每當我增加了一個項目,但它沒有任何效果。我覺得我圍繞着這個問題的一個簡單的解決方案,但我似乎無法找到它。任何專業提示?

回答

1

您似乎已經知道這一點,但如果可能的話,您要使用BindingList。任何試圖像BindingList一樣創建一個List函數的嘗試只會比僅僅將元素從List中複製到BindingList更加痛苦。

+0

是的,找到那裏是一個綁定列表和實現之間的區別和列表是「突破的時刻」那裏。 – GWLlosa 2009-07-13 18:35:05

0

如果我將我的類型從List更改爲BindingList,則所有問題都會消失,網格將按預期自動更新。

相關問題