Какой элемент управления WPF следует использовать, когда мне нужна электронная таблица / таблица данных с МАССИВНЫМ количеством столбцов и строк с данными? - PullRequest
0 голосов
/ 15 июля 2011

Какой элемент управления WPF следует использовать, когда мне нужна электронная таблица / таблица данных с МАССИВНЫМ количеством столбцов и строк с данными?

Максимум будет более 26000 столбцов и строк.

С наилучшими пожеланиями, Kjetil

Ответы [ 5 ]

0 голосов
/ 15 июля 2011

Не используйте сетку данных.

Используйте то, что даже не пытается работать с такими огромными наборами данных. Напишите что-нибудь с двумя полосами прокрутки - при прокрутке она извлекает / обновляет подмножество данных, которые вы хотите просмотреть, и отображает их некоторым полезным способом.

Работа с таким большим объемом данных потребует тщательного и всестороннего проектирования и рассмотрения. Я предлагаю вам написать свой собственный контроль. Если вы не знаете, как справиться с этой очень сложной задачей, я предлагаю вам начать с первых принципов, придумать план и попробовать его, а затем вернуться к вопросам, которые у вас могут возникнуть при управлении таким огромным объемом информации.

0 голосов
/ 15 июля 2011

Я думаю, вам нужно сделать шаг назад и спросить «почему?»

Собирается ли человек прокручивать 26 тыс. Столбцов в поисках информации?

Возможно, это возможностьсоздать лучшую метафору пользовательского интерфейса для анализа всех этих данных.Я хотел бы помочь найти решение, но без знания сферы бизнеса это был бы бесполезный жест.

0 голосов
/ 15 июля 2011

Недавно я столкнулся с похожей ситуацией с вами. Я решил проблему с UI Virtualization и Data Virtualization .

Что лучше для меня, так это это , где известные методы виртуализации Пол МакКлин и Винсент Ван Ден Берге были обновлены.

0 голосов
/ 15 июля 2011

Я бы порекомендовал DataGrid, но вы можете использовать любой элемент управления, какой захотите, до тех пор, пока он виртуализируется.

Проблема, с которой я сталкиваюсь, заключается в том, что если вы попытаетесь привязать стандартный массив или другую коллекцию в качестве своей поддержкидля хранения данных у вас будет 676 миллионов выделенных ячеек (26000 раз по 26000), даже если там практически нет данных.Мое предложение для вашего бэк-магазина было бы создать свой собственный класс на основе SortedList> который содержит данные только для заполненных ячеек.Затем вы можете создать оператор this [row, col], который получает или устанавливает данные ячейки и который может использоваться для привязки к вашему элементу управления.Тогда будут выделены только те ячейки, в которых есть данные.

0 голосов
/ 15 июля 2011

Я бы дал DataGrid шанс для этого.WPF DataGrid имеет встроенную поддержку виртуализации.Вы также можете попытаться установить для свойства VirtualizationMode значение Recycling, чтобы проверить, дает ли оно более высокую производительность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...