2011-01-07 104 views
2
foreach (var a in A) 
{ 
    dataGridMain.Rows.Add(); 
    dataGridMain.Rows[dataGridMain.Rows.Count - 1].Cells[0].Value = a.Date; 
    dataGridMain.Rows[dataGridMain.Rows.Count - 1].Cells[1].Value = a.Value; 
} 

當我運行上面的循環時,它會添加所有行,但只有最後一行包含任何數據。我究竟做錯了什麼?向DataGridView添加行,只顯示一行?

+0

確實循環期間Rows.Count的變化? – Dani 2011-01-07 20:14:14

+0

什麼是「A」? `a.Date`是否有價值? – hunter 2011-01-07 20:14:17

回答

3

你可以嘗試在使用的情況下,從添加它是做什麼用虛情假意的訂貨指數:

var index = grid.Rows.Add(); 
grid.Rows[index].Cells[.... 

或者更好:

var index = grid.Rows.Add(); 
var row = grid.Rows[index]; 
row.Cells[.... 
row.Cells[.... 
0

您的索引無變化。 幽州dataGridMain.Rows.Count -1作爲索引

它看起來像數沒有變化,看來你需要先搶指標,將其存儲在一個變量,然後添加值:

int n = dataGridMain.Rows.Add();

//now use n

dataGrid.Rows[n].Cells[0].Value = a.date;

//more code

0

dataGridMain.Rows.Add();這是將行添加到底部還是將其添加到第一個。 如果它在開始時添加它,那麼您只是添加新記錄,但始終更新相同的記錄。

1

你可以試試看看它是否有效?

foreach(var a in A) 
{ 
    YourObject row = new YourObject(){a.Date, a.Value}; 
    dataGridMain.Rows.Add(row); 
}