Ho un ItemsControl
contenente un elenco di dati che vorrei virtualizzare, tuttavia VirtualizingStackPanel.IsVirtualizing="True"
non sembra funzionare con un ItemsControl
.Virtualizzare un ItemsControl?
È proprio questo il caso o c'è un altro modo per farlo che non conosco?
Per testare Sono stato con 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 la ItemsControl
ad un ListBox
, posso vedere che l'evento Initialized
viene eseguito solo una manciata di volte (gli enormi margini sono solo così devo solo passare attraverso alcuni record), tuttavia come ItemsControl
ogni elemento viene inizializzato.
Ho provato a impostare ItemsControlPanelTemplate
su un VirtualizingStackPanel
ma ciò non sembra essere di aiuto.
Grazie, è esattamente il tipo di cosa che stavo cercando!Stavo cercando un diverso tipo di comportamento di selezione rispetto a una listbox e al tempo pensavo che sarebbe stato più semplice fare con un controllo degli oggetti. – Rachel
ListView funziona anche per questo. –
Se questo comando items è ulteriormente annidato, dovresti dargli un'altezza. Altrimenti lo scrollviewer non viene mostrato. – buckley