ฉันมีItemsControlรายการข้อมูลที่ฉันต้องการจำลองเสมือนจริง แต่VirtualizingStackPanel.IsVirtualizing="True"ดูเหมือนจะใช้กับItemsControlไฟล์.
เป็นเช่นนั้นจริงหรือมีวิธีอื่นในการทำเช่นนี้ที่ฉันไม่ทราบ?
ในการทดสอบฉันใช้บล็อกโค้ดต่อไปนี้:
<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>
ถ้าฉันเปลี่ยนItemsControlเป็น a ListBoxฉันจะเห็นว่าInitializedเหตุการณ์นั้นดำเนินไปเพียงไม่กี่ครั้งเท่านั้น (ระยะขอบใหญ่มากดังนั้นฉันจึงต้องผ่านบันทึกไม่กี่รายการ) อย่างไรก็ตามเมื่อItemsControlทุกรายการเริ่มต้น
ฉันได้ลองตั้งค่าItemsControlPanelTemplateเป็น a แล้วVirtualizingStackPanelแต่ดูเหมือนจะไม่ช่วยอะไร