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

start [/forum/topic.php?fid=21&msg=39826214&tid=1440325]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 15ms |
| total: | 179ms |

| 0 / 0 |
