Virtualizando um ItemsControl?
eu tenho umItemsControl
contendo uma lista de dados que eu gostaria de virtualizar, no entantoVirtualizingStackPanel.IsVirtualizing="True"
parece não funcionar com umItemsControl
.
É 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 oItemsControl
para umListBox
, Eu posso ver que oInitialized
O evento é executado apenas algumas vezes (as margens enormes são apenas para que eu só precise passar por alguns registros), no entanto, como umItemsControl
todo item é inicializado.
Eu tentei definir oItemsControlPanelTemplate
para umVirtualizingStackPanel
mas isso não parece ajudar.