在我的.NET 3.5
WPF
應用程序,我有一個WPF
DataGrid
將填充500列和50行。 應用程序的性能在滾動時非常差,或者當我做DataGrid.Items.Refresh()
或選擇行時。改進WPF DataGrid性能
其實應用程序大約需要20秒來更新佈局。事件將在20秒後觸發。
如果我將列數減少到50或更少,應用程序將非常靈敏。根據我的發現,性能與列數直接相關。
如何提高DataGrid
的性能?
在我的.NET 3.5
WPF
應用程序,我有一個WPF
DataGrid
將填充500列和50行。 應用程序的性能在滾動時非常差,或者當我做DataGrid.Items.Refresh()
或選擇行時。改進WPF DataGrid性能
其實應用程序大約需要20秒來更新佈局。事件將在20秒後觸發。
如果我將列數減少到50或更少,應用程序將非常靈敏。根據我的發現,性能與列數直接相關。
如何提高DataGrid
的性能?
有,你可以打開,以幫助你在你的的DataGrid對象
EnableColumnVirtualization = true
EnableRowVirtualization = true
這幾個選項,這兩個是我認爲可能有幫助的主要部分。接下來請嘗試將結合異步
ItemsSource="{Binding MyStuff, IsAsync=True}"
最後,我聽說最好設置一個最高的高度和寬度可以幫助,即使它的最大屏幕尺寸上面,但我沒有發現有不同的自己(要求有具有自動尺寸測量做)
MaxWidth="2560"
MaxHeight="1600"
也從來沒有把一個DataGrid
在ScrollViewer
,因爲你會失去基本的虛擬化。讓我知道如果這有幫助!
也許嘗試而不是一次
加載所有50行http://www.codeproject.com/Articles/34405/WPF-Data-Virtualization
IsAsync =真}」是一個使用此語句之後,應用程序讀取大量的在短的時間內記錄得更快,它爲我工作
IAsync = True在哪裏?什麼?絕對不清楚 –
看起來更進一步它說「ItemsSource =」{綁定MyStuff,IsAsync = True}「」 – Sam
檢查一下您是否屬性ScrollViewer.CanContentScroll
設置False
。 ...設置該屬性如果虛假地禁用虛擬化會降低數據網格的性能請參考這個CanContentScroll
一個甚至有10列以上的網格可能不是一個好主意,但考慮'Custom Paging' – Boomer
@ Boomer真的嗎?EVER看到了外匯網格? – TomTom
@WPFK你有沒有考慮過使用第三個參數ty網格針對性能進行了優化? – TomTom