Количество предметов в коллекции: ~ 100к
Количество полей отображается в столбцах: 4-10
Сама проблема - коллекция берется из базы данных с использованием EntityFramework. Для разработки и материализации всех необходимых данных требуется около 10-12 секунд на компьютерах разработчиков. Еще одна вещь, которая возникает, заключается в том, что одну и ту же коллекцию можно привязать к нескольким элементам управления, и, следовательно, они должны фильтроваться отдельно (= не устанавливая фильтры представления коллекции по умолчанию). В настоящее время я установил привязку следующим образом:
Binding b = new Binding();
b.Source = new CollectionViewSource() { Source = MyLargeCollection }.View;
MyDataGrid.SetBinding(DataGrid.ItemsSourceProperty, b);
Создание нового CollectionViewSource значительно увеличивает время, необходимое для инициализации - несколько минут (и я подозреваю, что по какой-то причине он перечисляет коллекцию 100 КБ). Я имею в виду, что если я просто установлю:
b.Source = MyLargeCollection;
Это займет всего 10-12 секунд, чтобы загрузить и материализовать данные из базы данных.
Вопрос - есть ли проблемы с моим кодом? Если нет - какой будет правильный подход для привязки одной и той же большой коллекции к различным элементам управления элементами, но с разными представлениями коллекции?