我有一個WPF窗口網格和內DataGrid控件:的DataGrid在一個StackPanel導致OutOfMemoryException異常
<Grid>
<DataGrid ItemsSource="{Binding AllAuthors}" />
</Grid>
AllAuthors
是ObservableCollection<Author>
和Author
一個簡單的類,只有少數字符串屬性。該集合中大約有40000個代碼位於後面的對象。 DataGrid打開速度很快(1秒後),並且通過數據網格的導航變得平穩和快速。該應用程序具有35 MB的內存負載。
如果我代替上述由代碼...
<StackPanel>
<DataGrid ItemsSource="{Binding AllAuthors}" />
</StackPanel>
...應用100%的CPU負載和運行內存連續地生長高達1,5 GB,而應用程序試圖以顯示數據網格。最後我收到OutOfMemoryException
。
我是WPF初學者,現在想知道這裏有什麼問題。 (我正在使用VS2010,.NET 4.0和WPF 4.0的內置DataGrid控件)
感謝您提前給予幫助!
你幫我找到了我的麻煩:我用Task.run()管理所有東西,當我「更新」我的集合,並提高OnPropertyChanged()時,工具崩潰時具有相同的行爲(最大RAM, OutOfMemoryException異常)。我搜索了幾個小時以瞭解我的c#代碼中出了什麼問題,但最後,這是由於UI線程創建了一個巨大的堆棧面板!謝謝 – Simon 2017-01-05 19:17:13