我想在Silverlight中配置一個ListBox來獲得包裝和虛擬化。silverlight 4:列表框與包裝和虛擬化
這是我目前的解決方案,使用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的構造函數添加日誌,我可以看到爲集合中的項目創建了一個控件,即使它們不可見。這對我來說是一個問題,因爲要顯示的對象和控件很重,並佔用太多內存。
您是否找到了解決方案? – SamChen 2012-05-03 00:40:28
我已經實現了一個簡單的虛擬包裝面板:在我的情況下,所有的項目總是有相同的大小,所以實現更簡單。 – olorin 2012-05-03 09:17:29
你能分享你的實施嗎? – SamChen 2012-05-04 02:36:04