當Datagrid上的.ItemsSource設置爲集合時,我總是遇到主要的性能問題。該方法返回的速度很快,但在屏幕實際呈現任何內容之前存在非常明顯的延遲。由於Datagrid設置了虛擬化模式,因此它應該能夠輕鬆處理非常大的集合。我在項目集合的綁定屬性中打印出一些調試信息,以確保它不會加載整個集合,但它只訪問前幾個項目,所以我確信虛擬化正在工作。即使對於小型集合,延遲也是大致相同的,所以它與實際的數據加載似乎無關。GridView vs DataGrid性能
所以它純粹是導致放緩的渲染。大多數情況下,這是由於在ScrollViewer中包含Datagrid,或者自動生成行高等引起的。但是我通過給出所有固定寬度來確定所有可能的原因,並確保沒有設置爲「無限」或「自動」。
把我的頭髮拉出來幾個星期後,我試了一件簡單的事情:我換了一個GridView的Datagrid。令我驚訝的是它不會受到大的延遲,它會立即着色。兩者具有完全相同的屬性和樣式,所以我試圖理解爲什麼Datagrid太慢了。
是否有任何邏輯的原因,爲什麼DataGrid可能比GridView慢?