2011-01-07 96 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); 
}