2011-01-20 2 views
3

Я ищу способ представления одинаково размерных элементов в фиксированном количестве строк и любом количестве столбцов. (Думайте о просмотре альбома iTunes или Picasa. Я считаю, что некоторые платформы относятся к этому как «gridview»)WPF упорядочивает элементы в сетке с помощью виртуализации

A WrapPanel выполнит эту работу, но я привяжусь к очень большому набору объектов, поэтому мне нужно виртуализация.

Я искал по сети и нашел коммерчески доступные VirtualizationWrapPanels и сообщения в блогах о том, как реализовать свой собственный VirtualizationPanel, но я не могу найти более простых решений.

Возможно ли организовать виртуализированные элементы данных в виде сетки (фиксированное количество строк) со стандартными компонентами WPF?

ответ

0

Ответственность за предоставление виртуализации несет Группа. К сожалению, рамки только обеспечивает виртуализацию StackPanel:

http://msdn.microsoft.com/en-us/library/system.windows.controls.virtualizingpanel.aspx

Существует очень хороший блог, который обеспечивает виртуализацию WrapPanel здесь:

http://blogs.claritycon.com/blog/2009/09/16/custom-panels-in-silverlight-wpf-part-4-virtualization/

Другой альтернативой является использование DataGrid, это будет виртуализироваться для вас.

+0

Новый адрес: http://blogs.claritycon.com/leeroth/2009/09/custom-panels-in-silverlight-wpf-part-4-virtualization/ –

1

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

я нашел серию или статьи и примеры кода, которые содержат панель Виртуализация Плитка

http://blogs.msdn.com/b/dancre/archive/tags/virtualizingtilepanel/

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

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

1

Быстрое и грязное решение состоит в том, чтобы использовать список (в вашем случае горизонтальный) «группировки предметов» (в вашем случае вертикальные), который будет определять желаемое количество строк. Виртуализация будет происходить на «групповых».

+0

Что именно вы подразумеваете под «группировкой элементов», ? –

+0

@JonHarrop Элементы, единственная цель которых - представить группу других предметов. –

Смежные вопросы