Вставить строку в середину DataGridView (C#)

Я хотел бы вставить новый DataGridViewRow в мой DataGridView по определенному индексу. Если я просто создам новую строку, как

DataGridViewRow dgwr = new DataGridViewRow();
datagridview1.Rows.Insert(index, dgwr);

Я не получу "настройки" DataGridView, например, мои "ячейки" будут равны 0. Этого не произойдет, если я использую.

DataGridView1.Add();

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

есть ли возможность объединить эти преимущества?

/Ник

2 ответов


grid.Rows.Insert(index, 1);
var addedRow = grid.Rows[index];

это вставляет 1 пустую шаблонную строку в "индекс", а затем просто обращается к строке в "индекс". Вторая строка предназначена для доступа к только что добавленной строке.

может также сократить, если вы знаете, ваши желаемые значения строк с:

grid.Rows.Insert(index, FirstName, LastName, BirthDate, Etc);

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


DataGridView и DataGridRowView - это просто визуальные представления источника данных и одной строки в источнике данных. Новая визуальная строка должна отображаться в DataView после добавления новой строки в источник данных.

Если вы хотите получить строку вида при добавлении новой строки дескриптор RowsAdded событие.