Eu tenho um ItemsControl
contendo uma lista de dados que gostaria de virtualizar, no entanto VirtualizingStackPanel.IsVirtualizing="True"
, parece não funcionar com um ItemsControl
.
É realmente esse o caso ou existe outra maneira de fazer isso que eu não conheço?
Para testar, tenho usado o seguinte bloco de código:
<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>
Se eu mudar ItemsControl
para a ListBox
, posso ver que o Initialized
evento ocorre apenas algumas vezes (as margens enormes são apenas para que eu só precise passar por alguns registros), no entanto, à medida que ItemsControl
cada item é inicializado.
Eu tentei definir o ItemsControlPanelTemplate
como a VirtualizingStackPanel
mas isso não parece ajudar.