Информация об изменениях

Сообщение Filter в DataGrid - очень медленно! от 03.06.2021 15:05

Изменено 03.06.2021 17:40 Kolesiki

Filter в DataGrid - очень медленно!
Ребят, помогите пожалуйста с гридом — очень медленная фильтрация!
Что делаю (кусочки кода):

grid.ItemsSource = НекийИсточник List<T>

// параметр Func<T, bool> filter
var dataView = CollectionViewSource.GetDefaultView(grid.ItemsSource);
dataView.Filter = (obj) => filter((T)obj);


Далее какой-нть контрол меняет условие фильтрации, после чего я делаю

CollectionViewSource.GetDefaultView(grid.ItemsSource).Refresh()

(что по идее должно те же данные перфильтровать)

Сам фильтр предельно простой: (obj) => obj.Property == true (к примеру). Ну то есть тормозить тут вообще нечему!

Что не нравится: КРАЙНЕ долгая фильтрация даже на 6 элементах!! Кликаю чекбокс, а список обновляется после секунды(!) фильтрации — почему так долго-то?? Подумаешь — Func сконструировал!
Вот не пойму, куда тут вообще копать. Может, грид можно как-то зафорсить "перефильтровать" чем-то помимо Refresh()? (если влиял именно он)
Filter в DataGrid - очень медленно!
Ребят, помогите пожалуйста с гридом — очень медленная фильтрация!
Что делаю (кусочки кода):

grid.ItemsSource = НекийИсточник List<T>

// параметр Func<T, bool> filter
var dataView = CollectionViewSource.GetDefaultView(grid.ItemsSource);
dataView.Filter = (obj) => filter((T)obj);


Далее какой-нть контрол меняет условие фильтрации, после чего я делаю

CollectionViewSource.GetDefaultView(grid.ItemsSource).Refresh()

(что по идее должно те же данные перефильтровать)

Сам фильтр предельно простой: (obj) => obj.Property == true (к примеру). Ну то есть тормозить тут вообще нечему!

Что не нравится: КРАЙНЕ долгая фильтрация даже на 6 элементах!! Кликаю чекбокс, а список обновляется после секунды(!) фильтрации — почему так долго-то?? Подумаешь — Func сконструировал!
Вот не пойму, куда тут вообще копать. Может, грид можно как-то зафорсить "перефильтровать" чем-то помимо Refresh()? (если влиял именно он)
PS
Делал и без всяких хелперов — прям с формы делал GetDefaultView, назначал фильтр — та же медленная петрушка, т.е. дело точно не в Func/лямбдах.