2016-03-22 1 views
0

У меня есть фон работник, который заполнит/пополняет список и после заправки и редактирования списка скопировать этот список в наблюдаемом списке:Как скопировать список в наблюдаемых коллекции в теме

this.OBSMailCountList = new ObservableCollection<IMailCount>(_allMailCounts); 

Проблема заключается в том, что Коллекция будет связываться с Живыми аквалангистами и после копирования в списке я получаю

ошибку:

«Значение не может быть NULL».

Мой вопрос:

Как скопировать наблюдаемом Коллекция с креплениями в тему?

ответ

1

Ваша проблема заключается в том, что у вас есть _allMailCounts == null в данный момент вы называете наблюдаемым коллекции конструктор. Вы можете проверить null как этот

if(_allMailCounts != null) 
    OBSMailCountList = new ObservableCollection<IMailCount>(_allMailCounts); 

Ниже приведен ответ на вопрос «как работать с ObservableCollection из другого протектора»:


Привязать к наблюдаемой коллекции определяется как обычно

ObservableCollection<IMailCount> _collection = new ObservableCollection<IMailCount>(); 
public ObservableCollection<IMailCount> Collection 
{ 
    get { return _collection; } 
    set 
    { 
     _collection = value; 
     OnPropertyChanged(); 
    } 
} 

В другой резьбе работают следующим образом:

// create a copy as list in UI thread 
List<IMailCount> collection = null; 
Dispatcher.Invoke(() => collection = new List<IMailCount>(_collection)); 

// when finished working set property in UI thread 
Dispatcher.InvokeAsync(() => Collection = new ObservableCollection<IMailCount>(collection)); 
1

Dispatcher.Invoke(Action) будет использоваться для вызова потока пользовательского интерфейса.

Dispatcher.Invoke(() => 
{ 
     // Set property or change UI compomponents.   
     OBSMailCountList = new ObservableCollection<IMailCount>(_allMailCounts); 
}); 
Смежные вопросы