2009-09-14 26 views
1

我有它的DataSource設置爲一個列表一個DataGridView變化。當我添加到該列表中時,更改不會被DataGridView拾取。用於初始化確切的代碼是:的DataGridView - 增加了數據源不反映在控制

dataGridView1.DataSource = document.m_statement.BANKMSGSRSV1.STMTTRNRS.STMTRS.BANKTRANLIST.STMTTRN; 
dataGridView1.AllowUserToAddRows = true; 
dataGridView1.AllowUserToDeleteRows = true; 
dataGridView1.AllowUserToOrderColumns = true; 
dataGridView1.AllowUserToResizeColumns = true; 
dataGridView1.AllowUserToResizeRows = false; 

以及更新數據源的確切代碼:

SimpleOfx.OFXBANKMSGSRSV1STMTTRNRSSTMTRSBANKTRANLISTSTMTTRN transaction = new SimpleOfx.OFXBANKMSGSRSV1STMTTRNRSSTMTRSBANKTRANLISTSTMTTRN(); 
document.m_statement.BANKMSGSRSV1.STMTTRNRS.STMTRS.BANKTRANLIST.STMTTRN.Add(transaction); 

正如你可能會說,類名稱已使用XSD.EXE已經產生,SimpleOfx是生成的類的命名空間,STMTTRN是一個列表,文件是一個包含deserialised XML文件中的類的實例,並m_statement是該文件。

任何想法,我必須這樣做已設置後得到控制,以反映對數據源所做的更改?我已經嘗試再次設置,但這不起作用。我試過'刷新'和其他各種聽起來有希望的方法,但他們也沒有奏效。感謝提前:)

編輯:多一點點信息;我可以打入代碼,並看看我的「文件」成員和dataGridView1的「數據源」屬性兩者;他們都有正確數量的元素,包括最後一些默認構造的元素,但控件仍然不會繪製這些額外的行。 在DataGridView的DataSource確實出現了知道名單的新內容,但不畫他們。

回答

4

我解決了這個從列表改變STMTTRN到的BindingList - 列表似乎有一些非常奇怪的行爲時,用作數據源(參見我的另一個最近的問題,它以相同的方式解決)。

它在生成的代碼,但我已經改變了它從一個陣列到一個列表中,使的BindingList是幾乎沒有任何多餘的麻煩:)

1

你必須添加到數據源列表後重新綁定,所以重做:

dataGridView1.DataSource = document.m_statement.BANKMSGSRSV1.STMTTRNRS.STMTRS.BANKTRANLIST.STMTTRN; 
+0

我正是這樣嘗試,並沒有奏效。 – 2009-09-14 15:09:38

相關問題