我在 WPF 窗口中有网格,在里面有一个 DataGrid 控件:
<Grid>
<DataGrid ItemsSource="{Binding AllAuthors}" />
</Grid>
AllAuthors
是一个简单ObservableCollection<Author>
的Author
类,只有几个字符串属性。该集合在后面的代码中填充了大约 40000 个对象。DataGrid 会很快打开(1 秒后),并且通过 datagrid 的导航顺畅而快速。该应用程序的内存负载为 35 MB。
如果我将上面的代码替换为...
<StackPanel>
<DataGrid ItemsSource="{Binding AllAuthors}" />
</StackPanel>
...当应用程序尝试显示 DataGrid 时,应用程序以 100% 的 CPU 负载运行,内存持续增长到 1.5 GB。最后我收到一个OutOfMemoryException
.
我是 WPF 初学者,现在想知道这里出了什么问题。(我正在使用 VS2010、.NET 4.0 和 WPF 4.0 的内置 DataGrid 控件)
提前感谢您的帮助!