Как получить отфильтрованный индекс строки после применения RowFilter к DataView - PullRequest
0 голосов
/ 30 мая 2020

Я разрабатываю инструмент для отображения всех записей журнала в DataGridView. Журналы хранятся в хронологическом порядке в DataTable dt. Журналы имеют три типа серьезности: ошибка, информация и подробный.

Строки журнала также сгруппированы по действиям. Таким образом, вместе с этим DataTable существует также связанный список. Для каждого действия я сохраняю номер первой строки и номер последней строки в DataTable dt.

Функция, с которой у меня возникают трудности, заключается в переходе к первым строкам, соответствующим выбранному действию, но отфильтрованным по серьезности, например отображать только строки журнала ошибок и переход к первой строке ошибки в выбранном действии. Я пытаюсь использовать:

logGridView.FirstDisplayedScrollingRowIndex = selectedActivity.ActivityStartLine;
(logGridView.DataSource as DataTable).DefaultView.RowFilter = "Severity >= " + severity;

Однако этот код не работает для ошибок серьезности и информации, поскольку строки журнала были отфильтрованы, исходный индекс selectedActivity.ActivityStartLine больше не имеет смысла в новых отфильтрованный список журналов. Как я могу получить новый индекс после применения фильтра и вместо этого перейти к этой строке?

...