我想开发一个observablecollection,它可以有许多观察者,每个观察者都有自己的基于Linq的过滤条件。
我知道我可以轻松地手动为每个观察者创建一个过滤的可观察集合。但是我对一种优雅的设计方法更感兴趣,该方法可以使观察者抽象出来。
将根据对象属性从配置中加载每个观察者的过滤条件。然后观察者应根据给定的过滤条件订阅主要集合中的对象更改。
我想以一种通用的方式编写此实现,以便它可用于任何对象及其集合。
此外,我想使用相同的过滤器来通知收集项本身的更改。因此,订户订阅的是元素的更改,而不是集合本身。仅在满足订阅过滤器的情况下,订阅者才会收到有关元素更改的通知。
例如: 我在订单列表中有一个订单对象集合。订阅者基于给定的基于LINQ的标准订阅我的收集类。每当集合中的任何对象被更新时,仅满足过滤条件的订户被通知。