Ho un ItemsControl
contenente un elenco di dati che vorrei virtualizzare, tuttavia VirtualizingStackPanel.IsVirtualizing="True"
non sembra funzionare con un file ItemsControl
.
È davvero così o c'è un altro modo di farlo di cui non sono a conoscenza?
Per testare ho utilizzato il seguente blocco di codice:
<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 cambio il ItemsControl
in a ListBox
, posso vedere che l' Initialized
evento viene eseguito solo una manciata di volte (gli enormi margini sono solo così devo solo passare attraverso alcuni record), tuttavia ItemsControl
ogni elemento viene inizializzato.
Ho provato a impostare il ItemsControlPanelTemplate
su a VirtualizingStackPanel
ma questo non sembra aiutare.