Я использую следующий код, чтобы установить связку из DataGridViewRow
элементов, которые будут невидимыми. Правило, которое я использую, это проверить связанный источник данных для логического флага. Если флаг имеет значение true, строка будет отображаться. Если нет, это будет невидимо.Более быстрый способ создания невидимого DataGridViewRow
Следующий код работает; однако он делает это, потребляя довольно много времени:
CurrencyManager currencyManager = (CurrencyManager)BindingContext[dataGridView.DataSource];
currencyManager.SuspendBinding();
foreach (DataGridViewRow row in dataGridView.Rows)
{
if (!objectList.list[row.Index].Selected)
{
row.Visible = false;
}
}
currencyManager.ResumeBinding();
У кого-нибудь есть лучшее решение? Чем длиннее список объектов, которые я должен пройти, тем дольше этот процесс выполняется, естественно. Я не могу установить диапазон ячеек, потому что булевские значения могут не быть смежными.
Почему бы не фильтровать источник данных до привязки? – PraveenVenu