2011-01-10 2 views
0

У меня есть WPF Datagrid для моего проекта. Когда пользователь загружает документы (или выбирает папку) в программу, datagrid загружается всеми свойствами документа (текст, тип, uri и т. Д.). Особенно, когда пользователь дает папку для программирования, она замерзает какое-то время, пока не загрузит каждую папку. И на последнем этапе он заполняет datagrid.wpf datagrid добавление элементов синхронно

То, что я действительно хочу сделать, это то, что загрузка строк datagrid, как только файл будет загружен успешно, не будет в конце последнего процесса.

Не могли бы вы показать мне какой-нибудь способ ..

ответ

2

Вы пробовали обновить DatGrid в другом потоке?

вот пример того, как это сделано в WPF:

// Places the delegate onto the UI Thread's Dispatcher 
private void timer_Elapsed(object sender, ElapsedEventArgs e) 
{ 
    // Place delegate on the Dispatcher. 
    this.Dispatcher.Invoke(DispatcherPriority.Normal, 
     new TimerDispatcherDelegate(TimerWorkItem)); 
} 

взяты из msdn

+0

на самом деле я никогда не использовал диспетчерский класса. И не мог найти, что именно будет работать. Что это значит внутри метода? и должен ли я называть этот timer_Elapsed откуда-то? где? спасибо .. – gencay

+0

Это способ WPF использовать другой поток для элементов пользовательского интерфейса. Событие timer_Elapsed - это просто пример, вы должны использовать свое собственное событие или функцию, которая имеет отношение к datagrid. нравится, когда файл загружен успешно, как вы сказали. – Notter