WPFウィンドウにグリッドがあり、内部にDataGridコントロールがあります。
<Grid>
<DataGrid ItemsSource="{Binding AllAuthors}" />
</Grid>
AllAuthors
は、いくつかの文字列プロパティのみObservableCollection<Author>
をAuthor
持つ単純なクラスです。コレクションには、コードビハインドで約40000個のオブジェクトが含まれています。DataGridは非常に速く(1秒後)開き、データグリッド内のナビゲーションはスムーズかつ高速になります。アプリケーションのメモリ負荷は35MBです。
上記のコードを...に置き換えると
<StackPanel>
<DataGrid ItemsSource="{Binding AllAuthors}" />
</StackPanel>
...アプリケーションは100%のCPU負荷で実行され、アプリケーションがDataGridを表示しようとしている間、メモリは最大1.5GBまで継続的に増加します。最後に私は受け取りますOutOfMemoryException
。
私はWPFの初心者で、ここで何が問題なのか疑問に思っています。(VS2010、.NET 4.0、およびWPF 4.0の組み込みDataGridコントロールを使用しています)
よろしくお願いします!