我在我的應用程序中使用巨大的表格來顯示數據。數據顯示在兩個嵌套的UniformGrid中。 UniformGrids是ItemsControls中的ItemPanels,並綁定到一些ViewModels。見下面的圖片和一些示例XAML碼:如何處理巨大的UniformGrid中的性能?
view and viewmodel http://img593.imageshack.us/img593/8825/stackoverflowuniformgri.png
<!-- The green boxes -->
<ItemsControl ItemsSource="{Binding BigCells}">
<ItemsControl.ItemPanel>
<PanelTemplate>
<UniformGrid />
</PanelTemplate>
</ItemsControl.ItemPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<!-- The blue boxes -->
<ItemsControl ItemsSource="{Binding SmallCells}">
<ItemsControl.ItemPanel>
<PanelTemplate>
<UniformGrid />
</PanelTemplate>
</ItemsControl.ItemPanel>
</ItemsControl>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
現在,我想我的觀點是可調整大小的,但是這並不在所有的,因爲每一個小方塊的佈局計算表現良好。
這至少可以使箱子大小隻做一次,因爲它對所有箱子都是相同的。
什麼是在WPF /顯示大量控件的最佳實踐,我可以從哪裏開始優化?關鍵字已經幫助我繼續發現WPF中UniformGrid的性能優化。
感謝您的詳細解答。它已經包含了我可以在我的應用程序中改進的一些要點(freezables,默認樣式覆蓋)。我會稍後檢查並報告。 –
當然,讓我知道它是怎麼回事!對我來說,這實際上是一個很好的練習,因爲我必須在我的博客上寫一篇演示文章:) – Sisyphe
我們有很多資源詞典,應用程序仍然非常快。我們接觸它的方式是爲一個資源創建一個資源字典(如樣式,矢量,畫筆等),然後從每個視圖中只引用所需的資源字典。問題在於統一網格本身,因爲它沒有虛擬化。 – adminSoftDK