相关疑难解决方法(0)

ObservableCollection还监视集合中元素的更改

是否有一个具有以下特征的集合(BCL或其他):

如果更改集合则发送事件如果集合中的任何元素发送事件,则发送PropertyChanged事件.排序的ObservableCollection<T>位置T: INotifyPropertyChanged和集合也监视元素的变化.

我可以自己包装一个可观察的集合,并在添加/删除集合中的元素时进行事件订阅/取消订阅,但我只是想知道现有的集合是否已经这样做了?

c# collections

32
推荐指数
2
解决办法
3万
查看次数

在WPF中使用带有ObservableCollection的HashSets

我正在使用ListBox来维护WPF应用程序中的项目列表.ListBox数据源是一个包含在ObservableCollection中的HashSet.即,我有以下代码:

this.shackSet = new ObservableCollection<Shack>(new HashSet<Shack>());
this.shackListing.ItemsSource = this.shackSet;
Run Code Online (Sandbox Code Playgroud)

...其中shackListing是一个ListBox控件,另一个是ICollection中的shackSet.但是,每当我在添加第一个项目后向shackSet添加任何内容时,我会在ListBox中看到多个项目.即,就像新添加的项目被添加到列表中一样,无论它们是否已添加到集合中.当我看到ICollection的签名#Add:

void Add(T obj);
Run Code Online (Sandbox Code Playgroud)

...和HashSet #Add:

bool Add(T obj); 
Run Code Online (Sandbox Code Playgroud)

......这使我相信有一个影响包裹HashSets其中新添加的项目被添加到列表框,无论是因为的ObservableCollection没有告诉该对象是否实际添加到收藏垫层的方式中的错误,因为ICollection的#返回类型添加无效.其他人可以证实这一点吗?

c# wpf observablecollection hashset

7
推荐指数
1
解决办法
7645
查看次数

标签 统计

c# ×2

collections ×1

hashset ×1

observablecollection ×1

wpf ×1