Работа с большим объёмом данных в C#

net DataGrid C# большие объёмы данных

Начал изучать WPF и частенько наталкиваюсь на трабблы и вот один из них ((
При написании импорта БД (MsAccess -> MySQL) возникла такая проблема:
На вход подаётся БД MsAccess.. Оттуда поднимается порядочный объём данных (порядка 10 000 строк), которые надо предоставить пользователю на фильтрацию, выборку и прочую ерунду, а затем загнать в MySQL базу..
Неприятности возникают на этапе отображения (используется WPF):
dataGrid.ItemsSource = oleDbDataReader;
и приложение безмолвно зависает ((

Примечание:
Спасибо за подсказки! Помогло, но появились другие прооблемы ))
Заделал такую вещь в XAML
EnableRowVirtualization="True" EnableColumnVirtualization="True"
и даные отображаются (хотя и не так шустро как хотелось бы (( )
Приложение выедает из оперативки порядка 50-60 метров, но как только пошевелить окошком или попытаться его ресайзить, то приложение доедает всю свободную оперативку ((

Вот как происходит привязка к источнику данных:
public partial class SelectImportedObjects : UserControl
{
private List<ProvisionSpecimen> _provisionSpecimens;

// окна настройки фильтров
private List<MarkedString> _genuses;
private List<MarkedString> _species;

public SelectImportedObjects(List<ProvisionSpecimen> provisionSpecimens)
{
InitializeComponent();
_provisionSpecimens = provisionSpecimens;
dataGrid1.ItemsSource = _provisionSpecimens;
}
.....
}

List<ProvisionSpecimen> - предварительно загружаются из Access базы. Класс имеет 42 поля, т.е. коллекция довольно такая ёмкая получается..
Хотелось бы чтобы приложение делало это отображения подобно графическим СУБД (тот же Access) - очень так быстро можно листать таблицу и памяти занимает не много..

Заранее спасибо
Ответы:
в отдельный поток отведи эту операцию, а на это время чего-нить успокаивающее нарисуй на форме :)
В WinForms у грида была такая фича, как VirtualMode, которая позволяла грузить в грид только то, что в данный момент отображается.
Возможно в WPF есть что-то подобное.


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.