Добавление строк в DataGridView, только одна строка отображается? - PullRequest
2 голосов
/ 07 января 2011
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;
}

Когда я запускаю цикл выше, он добавляет все строки, но только последняя строка содержит какие-либо данные.Что я делаю не так?

Ответы [ 4 ]

3 голосов
/ 07 января 2011

Вы можете попробовать использовать индекс из Add в случае, если он делает что-то нелепое с порядком:

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

Или лучше:

var index = grid.Rows.Add();
var row = grid.Rows[index];
row.Cells[....
row.Cells[....
1 голос
/ 07 января 2011

Можете ли вы попробовать и посмотреть, работает ли это?

foreach(var a in A)
{
  YourObject row = new YourObject(){a.Date, a.Value};
  dataGridMain.Rows.Add(row);
}
0 голосов
/ 07 января 2011

dataGridMain.Rows.Add (); Добавляет ли это строки в нижнюю часть или добавляет в первую. Если он добавляет его в начале, то вы просто добавляете новую запись, но постоянно обновляете одну и ту же запись.

0 голосов
/ 07 января 2011

Ваш индекс не меняется. Вы указываете dataGridMain.Rows.Count -1 как индекс

Похоже, что число не меняется, похоже, вам нужно сначала получить индекс, сохранить его в переменной и затем добавить значения:

int n = dataGridMain.Rows.Add();

//now use n

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

//more code

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...