У меня есть DataGridView со столбцом флажков. Я пытаюсь создать кнопку выбора / отмены выбора всего. Код для изменения значений достаточно прост, но производительность ужасно.
for (int i = 0; i < dgv.RowCount; i++)
{
dgv.Rows[i].Cells["Selected"].Value = _selectAll;
}
_selectAll - это просто переменная типа bool. Есть ли лучший способ сделать это при высокой производительности? Я также пробовал изменить значение в базовом DataTable. Для нескольких сотен строк по-прежнему требуется несколько секунд, но большая часть работы будет выполняться с тысячами строк.
РЕДАКТИРОВАНИЕ И РЕШЕНИЕ (2011/10/4)
Основная проблема заключалась в свойствах DGV. Как только я установил, производительность
dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;
резко улучшилась (согласно MSDN DataGridView Performance ). Решения, предложенные в этой редакции, также немного улучшат производительность.