Группировка CollectionViewSource (зависание при отображении большого кол-ва данных)
Есть большая коллекция данных. Необходимо их сгруппировать. Это не проблема
Items = new ObservableCollection<T>();
ItemsCollection = CollectionViewSource.GetDefaultView(Items);
if (!string.IsNullOrEmpty(GroupingPropertyName))
ItemsCollection.GroupDescriptions.Add(new PropertyGroupDescription(GroupingPropertyName));
ItemsCollection.Filter = SearchFilter;
Но из-за большого количества данных, при отображении все приложение зависает. Та же история при фильтрации.
Я предполагаю, что при группировке происходит постоянное обновление, как при вставке объектов. Можно ли как-то отключить обновление до тех пор пока не закончится группировка?
P.S. Как только я убираю группировку (причем в разметке XAML) то тормозов нету - добавляю группировку - появляются.
Ответы (1 шт):
Автор решения: MaximK
→ Ссылка
Решить проблему помогло включение вирутализации:
<DataGrid EnableColumnVirtualization="True"
EnableRowVirtualization="True"
VirtualizingPanel.IsVirtualizingWhenGrouping="True">
Ответ найден WPF DataGrid Virtualization with Grouping