我用一個簡單的List<T>源填充了一個 ListView 。我還在 ListView 上使用分組(使用默認視圖GroupDescriptions)和排序(使用 ListView items SortDescriptions)。
如果我顯示的專案很少,沒問題,但是當我加載 10 000 個專案時,應用程式會凍結,加載完成后,滾動變得非常困難。
在其他一些主題上,我已經看到我必須使用 MahApps listview 強制虛擬化:
<Style BasedOn="{StaticResource MahApps.Styles.ListView.Virtualized}" TargetType="ListView" />
我想我已經正確激活了它,因為CanContenScroll當我檢查我的 ListView 屬性時它是 True (并且它不在樣式定義之前)。盡管如此,顯示仍然很慢。
有什么我想完全激活虛擬化的嗎?我應該使用另一種集合型別而不是List<T>?
uj5u.com熱心網友回復:
根據@mm8 建議在沒有 MahApps 的情況下進行測驗,我必須在 ListView 定義中明確設定以下內容MahApps.Styles.ListView.Virtualized:
<ListView ScrollViewer.CanContentScroll="True" ScrollViewer.IsDeferredScrollingEnabled="True"
VirtualizingPanel.IsVirtualizing="True" VirtualizingPanel.IsVirtualizingWhenGrouping="True">
然后它運行良好,所以我再次啟用了 MahApps 樣式,讓 ListView 中的顯式定義(而不是像以前那樣使用全域樣式)并且它仍然像魅力一樣作業。
所以我不知道為什么,但是使用全域樣式不起作用。也許有什么東西在別處覆寫了它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/317312.html
標籤:。网 小白 列表显示 mahapps.metro
