ListBox с упаковкой и виртуализацией - PullRequest
1 голос
/ 13 мая 2011

Я пытаюсь настроить ListBox в Silverlight для получения как Обтекания, так и виртуализации.

Вот мое текущее решение с инструментарием Silverlight WrapPanel:

<ListBox ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
         ItemsSource="{Binding}">
    <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
            <toolkit:WrapPanel/> 
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel>
    <ListBox.ItemTemplate>
        <DataTemplate>
            <my:MyControl/>
        </DataTemplate>
    </ListBox.ItemTemplate>  
</ListBox>

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

Ответы [ 3 ]

2 голосов
/ 14 августа 2012

Я создал VirtualizingWrapPanel для Silverlight .Источник доступен на GitHub .

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

0 голосов
/ 24 августа 2011

Единственный (коммерчески доступный) в настоящее время, который может это сделать, - это виртуализированный элемент управления оберточной панелью, продаваемый www.binarymission.co.uk

. Он также выполняет настраиваемую группировку, рендеринг заголовка группы и т. Д.наряду с виртуализацией + упаковка.Это дорого, но стоит каждой копейки и решило мое требование.У меня есть приложение для создания онлайн-фотоальбома, и для этого приложения необходим весь контроль, все остальное - это простой пользовательский интерфейс, который мы собрали, и мы можем в кратчайшие сроки окупить стоимость контроля :) Их поддержка также превосходна.Ответы приходят почти в течение 10 минут;) что-то, чего вы обычно не ожидаете от стороннего поставщика управления, но я думаю, что их цена наверняка позаботится об этом:)

Джо Я исправил ссылку, которая была у вас там,Пока кто-то не рецензировал его, он не будет виден всем, так что вот фиксированная ссылка: Binarymission Virtualization Wrap Panel для WPF & SL

0 голосов
/ 14 мая 2011

Мне не известна бесплатная виртуализация WrapPanel для Silverlight, однако я нашел один для WPF. Вы можете преобразовать его в Silverlight. Традиционно создавать виртуализированные панели очень сложно.

Виртуализация WrapPanel для Silverlight ($ 900?)

Виртуализация WrapPanel для WPF

...