我有一个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