0

我有一个自定义类型,它知道如何与其他类型进行比较(它实现了 IComparable),它很好地存储在 ObservableList 中。

然而,收藏中仍然缺少一些东西。我需要4个功能。一个集合:

  1. 检测重复并防止插入。
  2. 自动对每个成功的插入进行排序。
  3. 是可观察的 &
  4. 如果插入了批次的项目,则仅在插入批次后通知。

我想要关于如何制作这样一个集合的提示,我需要研究/实施什么等。我不是在寻找代码,但如果你能给它一个奖励的话。

我想做什么:

从 ObservableCollection 继承,覆盖 add 方法,检查项目是否已经存在,如果忽略它。

或者

基于更通用的类型(如 List)实现我自己的 observable 集合。

4

1 回答 1

0

由于您想要防止重复插入并且想要排序,所以SortedSet可能是一个很好的起始位置。由于您需要通知,因此您必须扩展标准 SortedSet 并实现INotifyCollectionChangedand INotifyPropertyChanged。这里有一个例子,这里有一个例子它使用 aHashSet代替(它是无序的,但你可以很容易地用 a 替换SortedSet)。

同样有效的替代方法是与您一起使用第一个建议和扩展ObservableCollection

于 2013-06-29T17:04:41.007 回答