Датагрид с большим количеством строк - PullRequest
1 голос
/ 16 сентября 2011

В моем приложении WPF у меня есть экран с вкладкой. Пять из этих вкладок содержат сетки данных, которые должны отображать большое количество строк (не менее 5000). Таблицы привязаны к ObservableCollections объектов Part. Каждая строка отображает около 20 точек данных детали. Моя проблема в том, что после того, как пользователь вводит требуемую информацию и генерирует данные, нажатие на вкладку приводит к зависанию приложения на 30-60 секунд. После этого решетка данных наконец загружается, и с правильными настройками виртуализации они работают с приемлемой скоростью (не совсем быстро, но не слишком медленно). Если я отключу виртуализацию, программа израсходует слишком много памяти, и время загрузки действительно не влияет.

Самые оскорбительные таблицы состоят из полдюжины шаблонных столбцов. Каждый шаблон содержит элементы управления внутри стековой панели или сетки; в основном каждый ряд делится на два, как двойной ряд. Этот макет является требованием, и клиент, вероятно, не согласен с подкачкой.

Это самый важный экран в моем приложении, и я довольно затрудняюсь с выполнением этой работы. Что я могу сделать, чтобы ускорить этот процесс? Возможно, ObservableCollection - неправильный выбор?

1 Ответ

0 голосов
/ 16 сентября 2011

Можете ли вы предоставить больше информации ...

  1. Можете ли вы проверить, сколько времени уходит на "генерацию" 5 коллекций по 5000 строк в каждой?(это то, что, как я полагаю, вы говорите)

  2. С виртуализацией "вкл" каково время загрузки пользовательского интерфейса "после" мы назначаем коллекцию источнику элементов?

  3. Что произойдет, если вы связываете "ItemsSource" с соответствующей сеткой данных только тогда, когда tabItem на самом деле является видимым \ выбранным?

  4. Есть ли у ваших сетей данных путь к элементу сортировки по умолчанию?Группировка?Пути фильтра?

Вот несколько вещей, которые я хотел бы начать с этой проблемы.

...