带有包装和虚拟化的ListBox

问题描述 投票:1回答:3

我正在尝试在Silverlight中配置ListBox以获得包装和虚拟化。

这是我当前的解决方案,使用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的构造函数中,我可以看到为集合中的项创建了一个控件,即使它们不可见。在我的情况下这是一个问题,因为要显示的对象和控件很重并占用太多RAM。

silverlight listbox silverlight-4.0 virtualization
3个回答
2
投票

我创造了一个VirtualizingWrapPanel for Silverlight。来源是available on GitHub

需要注意的一点是,为了简化实现,所有项目必须大小相同。


0
投票

目前唯一可以做到这一点的是(商业上可用的)由www.binarymission.co.uk销售的虚拟化包装板控件

它还可以进行自定义分组,组头渲染等,以及虚拟化+包装。这是昂贵的,但值得每一分钱,并解决了我的要求。我是一个在线相册应用程序,应用程序需要控制,休息是我们整合的所有简单UI,我们可以立即恢复控制成本:)他们的支持也很好。回复几乎在10分钟之内;)你通常不期望第三方控制供应商的东西,但我猜他们的价格肯定会照顾:)

乔我已修复你在那里的链接。直到有人同行评审它才赢了;所有人都可以看到,所以这里是固定的链接:Binarymission Virtualizing Wrap Panel for WPF & SL


0
投票

我不知道Silverlight的免费Virtualizing WrapPanel,但我找到了一个WPF。您可以将其转换为Silverlight。传统上,创建虚拟化面板非常难以正确。

Virtualizing WrapPanel for Silverlight ($900?)

Virtualizing WrapPanel for WPF

© www.soinside.com 2019 - 2024. All rights reserved.