我将描述我的对象模型,然后我想做什么。
它是一个 Silverlight 应用程序,这些是绑定(bind)到 UI 元素的模型对象。
一个Agreement有一个TradingBranch的集合,分支可以被添加或移除。一个分支有 Product 的集合。
agreement.Branches
.SelectMany(x => x.Products)
.Distinct()
这些系列由分支和产品矩阵驱动。相同的产品可以被多个分支机构选择,因此是 Distinct。
本质上,我想让用户从已选为可用于任何分支机构的所有产品列表中进行选择。我希望在矩阵发生变化时更新此列表。
因此,不必为分支添加 CollectionChanged 处理程序,然后添加更多处理程序来监听 Products 集合,确定产品是否已经存在,然后在删除分支时必须取消订阅等等,我希望在那里是一些很好的 Rx 语法,我可以使用它来简单地说 - “听这一段 LINQ”并更新我绑定(bind)我的 ListBox 的其他可观察集合。
请您参考如下方法:
尽管名称相似,但 IObservable 和 ObservableCollection 完全不相关,不幸的是也不兼容。他们有两种截然不同的观察收藏的模式。
看看Bindable LINQ .它尝试定义 LINQ-to-ObservableCollection,以便对 ObservableCollection 的 LINQ 查询再次产生 ObservableCollection。不过,该项目似乎已经死了,而且我还没有使用推荐的替代品 ( Obtics )。
