Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 可观察收集';s集合已更改,未启动_C#_Observablecollection - Fatal编程技术网

C# 可观察收集';s集合已更改,未启动

C# 可观察收集';s集合已更改,未启动,c#,observablecollection,C#,Observablecollection,我有一个基于列表的可观察收集 private List<int> markers = new List<int>(); private ObservableCollection<int> markersObservable; markersObservable = new ObservableCollection<int>(markers); markersObservable.CollectionChanged += MarkersObserv

我有一个基于
列表
可观察收集

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

markersObservable = new ObservableCollection<int>(markers);
markersObservable.CollectionChanged += MarkersObservable_CollectionChanged;
我预计集合更改事件将触发,但事件从未触发:

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

我做错了什么?

当您将项目添加到
列表中时,
可观察集合
不会更改,因此不会触发
CollectionChanged
事件

要触发事件,必须将该项添加到
可观察集合中

markersObservable.Add(hScrollBarPoints.Value);

new ObservableCollection(markers)
仅复制
markers
中的所有元素,它与原始集合没有任何关系。我专门保留列表,因为我可以对其进行排序。@Pablo这是一个完全不同的问题,也许可以尝试使用CollectionView。
markersObservable.Add(hScrollBarPoints.Value);