Mam ItemsControl
zawierający listę danych, które chciałbym wirtualizacji, jednak VirtualizingStackPanel.IsVirtualizing="True"
nie wydaje się pracować z ItemsControl
.Wirtualizacja elementu ItemsControl?
Czy tak jest naprawdę, czy jest inny sposób robienia tego, czego nie jestem świadomy?
Aby przetestować Używam następujący fragment kodu:
<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>
Jeśli zmienię ItemsControl
do ListBox
, widzę, że zdarzenie Initialized
działa tylko kilka razy (ogromne marże są tylko dlatego, że muszę przejść przez kilka rekordów), jednak jako ItemsControl
każdy element zostanie zainicjowany.
Próbowałem ustawić ItemsControlPanelTemplate
na VirtualizingStackPanel
, ale to nie wydaje się pomóc.
Dziękuję, to jest dokładnie to, czego szukałem!Szukałem innego sposobu selekcji niż listbox i wtedy wydawało mi się, że najłatwiej będzie zrobić z kontrolką przedmiotów. – Rachel
ListView działa również w tym przypadku. –
Jeśli ta kontrola przedmiotów jest dodatkowo zagnieżdżona, należy również podać jej wysokość. W przeciwnym razie przewijarka nie jest wyświetlana. – buckley