c# Заполнение DataGridView без пустых ячеек
Всем привет. Нужно вставить в dgv значения из Dictionary. Как эти значения правильно вывести в таблицу, чтобы не начиналось каждый раз с новой строки?

Да, я понимаю, что я просто вставляю в новую строку данные. Хотелось-бы узнать, как можно вставлять в ранее созданную строку данные.
Код:
var Dictionary = BusinessMenu.dic;
foreach (var Product in Dictionary.Values)
{
switch (Product.Type)
{
case "Business":
dgv.Rows.Add($"{Product.Title}/{Product.Price}", null, null, null, null, null);
break;
case "Salad":
dgv.Rows.Add(null, $"{Product.Title}/{Product.Price}", null, null, null, null);
break;
case "Soup":
dgv.Rows.Add(null, null, $"{Product.Title}/{Product.Price}", null, null, null);
break;
case "HotDishes":
dgv.Rows.Add(null, null, null, $"{Product.Title}/{Product.Price}", null, null);
break;
case "Dessert":
dgv.Rows.Add(null, null, null, null, $"{Product.Title}/{Product.Price}", null);
break;
case "Drinkable":
dgv.Rows.Add(null, null, null, null, null, $"{Product.Title}/{Product.Price}");
break;
}
}
Ответы (2 шт):
Автор решения: Евгений Панкратов
→ Ссылка
Можно использовать обращение к конкретной ячейке.
dataGridView1.Rows[1].Cells[1].Value = "Tets";
Автор решения: Frehzy
→ Ссылка
Написал решение. Не очень красиво, с костылями, но работает:
dgv.Rows.Add();
FreeIndex = 0;
foreach (DataGridViewRow row in dgv.Rows)
{
if (row.Cells[5].Value is null)
{
dgv.Rows[FreeIndex].Cells[5].Value = $"{Product.Title}/{Product.Price}";
break;
}
else
FreeIndex++;
}
и потом, чтоб убрать лишние строки пустые:
var rowsToRemove = new List<int>();
foreach (DataGridViewRow row in dgv.Rows)
{
int NullCount = 0;
foreach (DataGridViewColumn column in dgv.Columns)
{
if (row.Cells[column.Index].Value is null)
NullCount++;
}
if (NullCount == dgv.Columns.Count)
rowsToRemove.Add(row.Index);
}
rowsToRemove.Reverse();
rowsToRemove.ForEach(i => dgv.Rows.RemoveAt(i));
rowsToRemove.Reverse();