2017-01-25 4 views
0

У меня есть ObservableCollection, основанный на List.Коллекция ObservableCollectionChanged не сжигание

private List<int> markers = new List<int>(); 
private ObservableCollection<int> markersObservable; 

markersObservable = new ObservableCollection<int>(markers); 
markersObservable.CollectionChanged += MarkersObservable_CollectionChanged; 

При добавлении элемента в список:

markers.Add(hScrollBarPoints.Value); 

Я ожидаю, что коллекция изменил событие не будет огня, однако, событие не стрелял:

private void MarkersObservable_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) 
{ 
    Console.WriteLine("Changed!"); 
} 

Что я делаю неправильно?

+0

'новый ObservableCollection (маркеры)' только копирует все элементы из 'markers', не образует какой-либо отношения с оригинальной коллекцией. –

ответ

1

Когда вы добавляете предметы в List, ObservableCollection не изменяется и, таким образом, не срабатывает событие CollectionChanged.

Чтобы получить событие уволят, вы должны добавить товар в ObservableCollection:

markersObservable.Add(hScrollBarPoints.Value); 
+0

Я специально держу Список , потому что я могу сортировать его. – Pablo

+1

@Pablo это совсем другая проблема, возможно, попробуйте CollectionView. –

Смежные вопросы