Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
12.06.2019, 15:07
|
|||
|---|---|---|---|
Медленное выделение строк в DataGrid |
|||
|
#18+
Приветствую, коллеги! Столкнулся с весьма странным багом в DataGrid при выделении всех строк или относительно большого числа. Имеется DataGrid, например, с 200 строками и порядка 20 колонками. При нажатии Ctrl+A или выделении мышкой сразу всех подвисает на секунд 5. Рендеринг строк происходит быстро, но не выделение. Как пробовал побороть. Убирал все конверторы. Задавал настройки Visualization в разных комбинациях. Событий на DataGrid нет. Проверил Bindings, но нигде нет чего-либо, что исполнялось бы при выделении. Есть идеи, что может приводить к такому поведению DataGrid? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.06.2019, 17:37
|
|||
|---|---|---|---|
Медленное выделение строк в DataGrid |
|||
|
#18+
После нескольких часов мучений мне удалось найти причину. Класс, что в основе ObservableCollection имеет свое исполнение Equals и GetHashCode методов. Странно, но похоже, что при выделении строчки, эти методы вызываются, что тормозит весь процесс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.06.2019, 08:41
|
|||
|---|---|---|---|
|
|||
Медленное выделение строк в DataGrid |
|||
|
#18+
может в виртуализации проблема, а не в методах? объекты коллекции это структуры? просто при нажатии Ctrl+A, на сколько я помню, происходит материализация всех элементов списка или DataGrid'а ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.06.2019, 15:55
|
|||
|---|---|---|---|
Медленное выделение строк в DataGrid |
|||
|
#18+
Roman Mejtes, С виртуализацией я пробовал всё возможное. Коллекция представлена в виде ObservableCollection<MyClass>. В MyClass методы GetHashCode и Equals были overriden, как только удалил "мои" методы, все заработало быстро. К сожалению, я не знаю, что именно происходит при нажатии Ctrl+A, но точно могу сказать, что GetHashCode вызывается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.06.2019, 16:10
|
|||
|---|---|---|---|
|
|||
Медленное выделение строк в DataGrid |
|||
|
#18+
эти методы используются для того, чтоб сравнивать дочерние элементы Selector'а, внутри хранятся списки\справочники выделенных элементов, текущий элемент и т.д. Будет лучше, если вы не будете переопределять эти методы, сделайте реализацию компаратора и используйте её. либо оберните свои объекты враппером. другого пути нет, это внутренняя реализация DataGrid контрола :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=21&mobile=1&tid=1440325]: |
0ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
69ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
| others: | 12ms |
| total: | 179ms |

| 0 / 0 |
