В моем приложении winforms у меня есть сетка данных, которая занимает около 0,8 секунд для заполнения +/- 5000rows - если все столбцы являются столбцами текстового поля.
Один из столбцов является целочисленным столбцом, поэтому я решил изменить этот столбец на ImageColumn, и в событии Cell_formatting сетки я использую следующий код, чтобы определить соответствующее изображение для отображения:
private void dgv_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) {
if (dgv.Columns[e.ColumnIndex] is DataGridViewImageColumn && e.ColumnIndex == 1) {
int cellVal = (int)e.Value;
switch (cellVal) {
case 1:
e.Value = Properties.Resources.Pending;
dgv.Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = "Item pending attention";
break;
case 2:
e.Value = Properties.Resources.Tick
dgv.Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = "File is available";
break;
default:
break;
}
}
}
Это работает. Однако, просмотр данных теперь занимает почти 5 секунд , чтобы заполнить себя !! и сортировка столбцов просто становится слишком трудоемкой. 5 секунд теперь могут показаться не слишком большими, но примерно через 2 месяца строки вырастут примерно до 30000 !!
Есть ли более эффективный способ справиться с этим сценарием?
Спасибо тебе!