我有一个名为LocationList的List子类。这是我们添加其他属性(如IsExpanded等)以在UI中使用的方便方法。但是现在,我们希望每个位置都知道其父级。因此,当向LocationList添加内容时,我们需要被通知,但无法覆盖Add和Remove。虽然我们可以使用ObservableCollection,但那更多是View/ViewModel构造。这是纯模型数据。
当然,我们可以在将其添加到集合中时手动设置父级,但我讨厌像这样的非自动化逻辑,因为没有任何东西来强制执行其正确设置。让集合(好吧,List)自动说“嘿...你正在被添加,所以我会将你的父级设置为拥有我的类。”是我想要的。
我的想法是不再对List进行子类化,而是创建一个直接使用List的类,然后我可以简单地公开自己的Add/Remove方法并在其中处理对“Parent”的调整。然而,这样做会破坏能够枚举内部集合的能力,因为它在内部。
话虽如此,是否有任何方法可以监听List的更改,或者至少从包装对象委托其IEnumerable接口到其包装器?
当然,我们可以在将其添加到集合中时手动设置父级,但我讨厌像这样的非自动化逻辑,因为没有任何东西来强制执行其正确设置。让集合(好吧,List)自动说“嘿...你正在被添加,所以我会将你的父级设置为拥有我的类。”是我想要的。
我的想法是不再对List进行子类化,而是创建一个直接使用List的类,然后我可以简单地公开自己的Add/Remove方法并在其中处理对“Parent”的调整。然而,这样做会破坏能够枚举内部集合的能力,因为它在内部。
话虽如此,是否有任何方法可以监听List的更改,或者至少从包装对象委托其IEnumerable接口到其包装器?