Виртуализация с использованием VirtualizingStackPanel внутри пользовательских ControlTemplatesC#

Место общения программистов C#
Ответить
Anonymous
 Виртуализация с использованием VirtualizingStackPanel внутри пользовательских ControlTemplates

Сообщение Anonymous »

Мне поручено реализовать собственный элемент управления, подобный DataGrid, в одном из моих проектов.
Это связано со многими специфическими функциями, которые необходимо реализовать, а также с большими объемами данных, которые необходимо отображать. В среднем мы говорим о миллионе строк, иногда больше.
Поэтому, естественно, я изучал виртуализацию и способы реализации встроенных функций WPF, но, похоже, у меня нет шансов заставить ее работать. Я также потратил бесчисленное количество часов, пытаясь найти больше ресурсов по этому вопросу, и все, что я могу найти, это люди, использующие либо собственный ListBox, либо DataGrid - никаких пользовательских реализаций.
Проблема в том, что моя пользовательская сетка пытается сразу загрузить все элементы пользовательского интерфейса (строки) в поле зрения, что приводит к резкому увеличению нагрузки на память и процессор.
Это мой исходный код. Возможно, кто-то, достаточно хорошо разбирающийся в WPF, поможет мне определить любую возможную причину того, что VirtualizingStackPanel, по-видимому, не работает.
Я не уверен, нужен ли здесь код программной части, сам элемент управления отображается нормально. Конечно, я также открыт для любых альтернатив, таких как использование DataGrid и замена его шаблонов вместо этого или написание логики виртуализации самостоятельно, если это кажется более осуществимым из-за каких-либо ограничений.

























































































Подробнее здесь: https://stackoverflow.com/questions/798 ... ltemplates
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»