我改變了我的ListView控件模板看起來像這樣:的ListView與continious填充未虛擬化
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="true">
<ScrollViewer Background="{TemplateBinding Background}"
VerticalScrollBarVisibility="Auto"
Padding="{TemplateBinding Padding}" Style="{DynamicResource {x:Static GridView.GridViewScrollViewerStyleKey}}"
VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Recycling"
ScrollViewer.IsDeferredScrollingEnabled="True">
<StackPanel>
<ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
<Border x:Name="FillerView" BorderThickness="0"/>
</StackPanel>
</ScrollViewer>
</Border>
這樣做的原因是,我想要的ListView
的交替着色繼續。這是通過觸發FillerView
邊界完成的。如果我從該模板中刪除Stackpanel
和邊界Fillerview
,我的ListView
正在以非常快的速度進行虛擬化。如果我在那裏,它是非常緩慢的。
任何人都可以告訴我爲什麼虛擬化不起作用,當我使用上面的模板?哦,我不能移動Scrollviewer
中的邊框FillerView
,因爲我想讓底部的滾動條位於填充符之下。
謝謝!
順便說一句,你是否將'ListView.ItemsPanel'設置爲'VirtualizingStackPanel'? – sll
正如我所說,ListView工作正常,如果我刪除StackPanel和ItemsPresenter周圍的邊框。我還額外添加了這些代碼,但是當我在Itemspresenter中保留上述代碼時,Virtualisation仍處於關閉狀態。 ItemsPanelTemplate> –
m00ni