У меня есть сетка в окне WPF и элемент управления DataGrid внутри:
<Grid>
<DataGrid ItemsSource="{Binding AllAuthors}" />
</Grid>
AllAuthors
- это ObservableCollection<Author>
и Author
простой класс с несколькими строковыми свойствами. Коллекция содержит около 40000 объектов в коде позади. Сетка данных открывается довольно быстро (через 1 секунду), и навигация по сетке данных проходит плавно и быстро. Приложение имеет нагрузку на память 35 МБ.
Если я заменю код выше на ...
<StackPanel>
<DataGrid ItemsSource="{Binding AllAuthors}" />
</StackPanel>
... приложение работает с 100% загрузкой ЦП, а объем памяти постоянно увеличивается до 1,5 ГБ, пока приложение пытается отобразить DataGrid. Наконец я получаю OutOfMemoryException
.
Я новичок в WPF и теперь думаю, что здесь не так.
(Я использую VS2010, .NET 4.0 и встроенный элемент управления DataGrid в WPF 4.0)
Заранее спасибо за помощь!