【问题标题】:Custom collection that is observable-self sorting-prevents insertions etc可观察的自定义集合 - 自我排序 - 防止插入等
【发布时间】:2013-06-29 15:59:46
【问题描述】:

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

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

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

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

我想做什么:

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

或者

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

【问题讨论】:

  • ObservableCollectionList 一样“通用”。如果您希望您的收藏实现INotifyCollectionChanged,没有理由不使用它。我认为你应该不断发展你的第一个想法。

标签: c# sorting collections observablecollection


【解决方案1】:

由于您想要防止重复插入并且想要排序,所以SortedSet 可能是一个不错的起始位置。由于您需要通知,因此您必须扩展标准的 SortedSet 并实现 INotifyCollectionChangedINotifyPropertyChanged。有一个示例 here 和另一个 here 使用 HashSet 代替(这是无序的,但您可以轻松地替换为 SortedSet)。

同样有效的替代方法是接受您的第一个建议并扩展ObservableCollection

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    • 1970-01-01
    相关资源
    最近更新 更多