Установите datatable.defaultview.rowfilter затем определить, какие строки показывают, и спрятаны?
У меня есть DataTable, привязанный к DataGridView. DataTable имеет логический столбец, который является столбцом checkbox в DataGridView. Пользователю разрешено фильтровать DataGridView и когда я устанавливаю DataTable.DefaultView.RowFilter он правильно показывает и скрывает соответствующие строки. Что мне нужно сделать, так это снять галочку с любой строки, которая была скрыта. Я делаю выбор Linq, чтобы получить проверенные строки, и мне нужно снять все скрытые строки. Как узнать, является ли строка частью фильтра или нет?
dtBoundDataSource is set and bound to the datagridview above private void UnselectFilteredRows() { if(dtBoundDataSource != null && dtBoundDataSource.Rows.Count > 0) { var checkedRows = from cRow in dtBoundDataSource.AsEnumerable() where cRow.Field<bool>(checkedColumnName) == true select cRow; foreach (var row in checkedRows) { if(row) //this is where i need to check if the row is visible or hidden row.SetField(checkedColumnName, false); } } }
Заранее спасибо
Что я уже пробовал:
Я попытался получить DataView с фильтром NOT, и он не возвращает никаких строк. Я пробовал использовать rowstate, но это если строка добавляется, изменяется, удаляется и т. д. Кажется, я не могу найти настройку, которая показывает, отфильтрована она или нет.