我有一個ItemsControl
包含我想要虛擬化的數據列表,但VirtualizingStackPanel.IsVirtualizing="True"
似乎不適用於ItemsControl
。虛擬化一個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
到ListBox
,我可以看到Initialized
事件只運行的時間屈指可數(鉅額利潤所以我只需要通過幾條記錄),但是作爲ItemsControl
,每個項目都會被初始化。
我曾嘗試將ItemsControlPanelTemplate
設置爲VirtualizingStackPanel
,但這似乎沒有幫助。
謝謝你,那就是我正在尋找的那種東西!我正在尋找一種不同於列表框的選擇行爲,並且當時我認爲這對於項目控件來說是最簡單的。 – Rachel 2010-05-07 12:20:13
ListView也適用於此。 – 2010-08-10 20:20:42
如果這個itemcontrol進一步嵌套,你應該給它一個高度。否則,不會顯示滾動查看器。 – buckley 2014-09-24 21:31:02