【发布时间】:2016-03-04 18:49:48
【问题描述】:
我测试了许多虚拟化变体,但没有得到工作版本。我通过Snoop检查了虚拟化,其中虚拟化的可视化树只包含显示的项目,非虚拟化的包含所有项目。
ItemsSource (NumberList) 包含 500 个项目(整数 1..500)。 以下版本已虚拟化:
<Grid>
<ListView Name="lbDefault" Margin="15,10" Width="300" Height="200"
ItemsSource="{Binding NumberList}"
ScrollViewer.VerticalScrollBarVisibility="Auto"
ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel/>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
</Grid>
以下代码不起作用:
<Grid>
<ListView Name="lbDefault" Margin="15,10" Width="300" Height="200"
ItemsSource="{Binding NumberList}"
ScrollViewer.VerticalScrollBarVisibility="Auto"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
VirtualizingPanel.IsVirtualizing="True"
ScrollViewer.CanContentScroll="True">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel/>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
</Grid>
有什么想法吗?
谢谢, 谢
【问题讨论】:
-
没有像
StackPanel和VirtualizingStackPanel那样支持虚拟化的WrapPanel的内置版本。基本上当你使用WrapPanel时,虚拟化是关闭的。您可以尝试使用VirtualizingWrapPanel,但它并不完美,问题也很少
标签: wpf listview virtualization