powered by simpleCommunicator - 2.0.35     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Медленное выделение строк в DataGrid
6 сообщений из 6, страница 1 из 1
Медленное выделение строк в DataGrid
    #39825758
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую, коллеги!

Столкнулся с весьма странным багом в DataGrid при выделении всех строк или относительно большого числа. Имеется DataGrid, например, с 200 строками и порядка 20 колонками. При нажатии Ctrl+A или выделении мышкой сразу всех подвисает на секунд 5. Рендеринг строк происходит быстро, но не выделение.

Как пробовал побороть. Убирал все конверторы. Задавал настройки Visualization в разных комбинациях. Событий на DataGrid нет. Проверил Bindings, но нигде нет чего-либо, что исполнялось бы при выделении.

Есть идеи, что может приводить к такому поведению DataGrid?
...
Рейтинг: 0 / 0
Медленное выделение строк в DataGrid
    #39825807
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После нескольких часов мучений мне удалось найти причину. Класс, что в основе ObservableCollection имеет свое исполнение Equals и GetHashCode методов. Странно, но похоже, что при выделении строчки, эти методы вызываются, что тормозит весь процесс.
...
Рейтинг: 0 / 0
Медленное выделение строк в DataGrid
    #39825950
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может в виртуализации проблема, а не в методах?
объекты коллекции это структуры?
просто при нажатии Ctrl+A, на сколько я помню, происходит материализация всех элементов списка или DataGrid'а
...
Рейтинг: 0 / 0
Медленное выделение строк в DataGrid
    #39826214
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes,

С виртуализацией я пробовал всё возможное.
Коллекция представлена в виде ObservableCollection<MyClass>. В MyClass методы GetHashCode и Equals были overriden, как только удалил "мои" методы, все заработало быстро.
К сожалению, я не знаю, что именно происходит при нажатии Ctrl+A, но точно могу сказать, что GetHashCode вызывается.
...
Рейтинг: 0 / 0
Медленное выделение строк в DataGrid
    #39826223
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
эти методы используются для того, чтоб сравнивать дочерние элементы Selector'а, внутри хранятся списки\справочники выделенных элементов, текущий элемент и т.д. Будет лучше, если вы не будете переопределять эти методы, сделайте реализацию компаратора и используйте её.
либо оберните свои объекты враппером.
другого пути нет, это внутренняя реализация DataGrid контрола :(
...
Рейтинг: 0 / 0
Медленное выделение строк в DataGrid
    #39826335
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes,

Это я еще вчера сделал, как только выяснил причину. Но спасибо за участие!
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Медленное выделение строк в DataGrid
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]