Здравствуйте, Sinatr, Вы писали:
S>Здравствуйте, drag79, Вы писали:
D>>Использую DataGridView в режиме VirtualMode. D>>Есть ли какие-либо варианты решения этой проблемы?
S>Не уловил в чем проблема. Exception проблема или 20 сек проблема? В первом случае, код эксепшина можна? Во втором — пейджинг, прогрес бар или какой-нить худой фильтр, не?
Эксепшен говорит что для SharedRows нельзя использовать Selected. Я смотрел исходный код дот нета — там как раз проверка, что НЕ SharedRows.
Это не проблема в том смысле, что была просто попытка использовать SharedRows при простановке Selected = true.
Проблема конечно в ожидании, которое получается изза выделения памяти для всех строк. И это несмотря на утверждения официального гайда, по которому условия выполняются, а вот экономии памяти нет.
Фильтр — дело кастомное. А что даст пейджинг, даже если бы он был возможен? Ведь есть массовые операции выделения строк. По идее виртуальность таблицы и есть тот самый пейджинг. То, что не видит пользователь — и так не присутствует в памяти...
Конечно есть вариант, что использовать внутреннюю коллекцию отмеченных строк. Но ведь это головняк — ведение этих строк. Здесь объяснять не буду — если немного подумать, то станет понятно почему.