Member 12712527 Ответов: 3

Как получить значения 2-мерного массива в datagridview ?


Как вы получите значения двухмерного массива в datagridview, не используя свойство datasource объекта datagridview....?

Что я уже пробовал:

в то время как(r

BillWoodruff

Объясните, почему вы не используете источник данных.

3 Ответов

Рейтинг:
2

OriginalGriff

Если вы не используете источник данных (а я бы сделал это намного проще), то вам придется добавлять каждую строку и столбец самостоятельно, используя DataGridViewRowsCollection.Метод add[^]:

int i = dgvData.Rows.Add();
dgv.Rows[i].Cells["columnname"],Value = myValue;

Вам придется создавать столбцы вручную, прежде чем вы начнете добавлять строки, поэтому я предпочитаю использовать источник данных: публичные свойства класса (или столбцы DataTable) используются в качестве столбцов автоматически.


Рейтинг:
1

Member 7969814

Во-первых, вы должны добавить строки как равные вашему массиву или создать цикл как qual для строк массива. затем просто добавьте строки в представление таблицы данных

как это

for()
{
var index = dgv.Rows.Add();
dgv.Rows[index].Cells["Column1"].Value = array[i][0];
dgv.Rows[index].Cells["Column2"].Value = 5.6;
}

Примечание. строки не могут быть программно добавлены в коллекцию строк DataGridView, если элемент управления привязан к данным.


Рейтинг:
0

Sandeep Mewara

Без источника данных в игре вам нужно было бы сначала построить столбцы DataGridView, а затем заполнить каждую строку ячейка за ячейкой.

Ссылка:c# - показать 2d-массив в DataGridView - переполнение стека[^]

пример:

string[,] twoD = new string[,]
{
  {"row 0 col 0", "row 0 col 1", "row 0 col 2"},
  {"row 1 col 0", "row 1 col 1", "row 1 col 2"},
  {"row 2 col 0", "row 2 col 1", "row 2 col 2"},
  {"row 3 col 0", "row 3 col 1", "row 3 col 2"},
};

int height = twoD.GetLength(0);
int width = twoD.GetLength(1);

this.dataGridView1.ColumnCount = width;

for (int r = 0; r < height; r++)
{
  DataGridViewRow row = new DataGridViewRow();
  row.CreateCells(this.dataGridView1);

  for (int c = 0; c < width; c++)
  {
    row.Cells[c].Value = twoD[r, c];
  }

  this.dataGridView1.Rows.Add(row);
}