我有一个ItemsControl
包含我想要虚拟化的数据列表,但VirtualizingStackPanel.IsVirtualizing="True"
似乎不适用于ItemsControl
。虚拟化一个ItemsControl?
这是真的,还是有另一种做法,我不知道?
为了测试我一直在使用下面的代码块:
<ItemsControl ItemsSource="{Binding Path=AccountViews.Tables[0]}"
VirtualizingStackPanel.IsVirtualizing="True">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Initialized="TextBlock_Initialized"
Margin="5,50,5,50" Text="{Binding Path=Name}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
如果我改变ItemsControl
到ListBox
,我可以看到Initialized
事件只运行的时间屈指可数(巨额利润所以我只需要通过几条记录),但是作为ItemsControl
,每个项目都会被初始化。
我曾尝试将ItemsControlPanelTemplate
设置为VirtualizingStackPanel
,但这似乎没有帮助。
谢谢你,那就是我正在寻找的那种东西!我正在寻找一种不同于列表框的选择行为,并且当时我认为这对于项目控件来说是最简单的。 – Rachel 2010-05-07 12:20:13
ListView也适用于此。 – 2010-08-10 20:20:42
如果这个itemcontrol进一步嵌套,你应该给它一个高度。否则,不会显示滚动查看器。 – buckley 2014-09-24 21:31:02