我有一个包含数据列表的 ItemsControl
,我想虚拟化,但是 VirtualizingStackPanel.IsVirtualizing="True"
似乎不与 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
,但似乎没有帮助。