在一个集合中订阅一个集合的不错的Rx方法

问题描述 投票:1回答:2

我将描述我的对象模型,然后描述我想做的。

这是一个Silverlight应用程序,并且是绑定到UI元素的模型对象。

[协议具有TradingBranch的集合,可以添加或删除分支。分支机构具有产品集合。

agreement.Branches
         .SelectMany(x => x.Products)
         .Distinct()

这些集合由分支机构和产品矩阵驱动。多个分支可以选择相同的产品,因此有所不同。

基本上,我想让用户从所有已选择可用于任何分支机构的产品列表中进行选择。我希望在矩阵发生更改时更新此列表。

因此,不必为分支添加CollectionChanged处理程序,而是让更多处理程序侦听Products集合,确定产品是否已经存在,然后在删除分支等时必须退订,等等,我希望在那里我可以采用一些不错的Rx语法来简单地说-“听这条LINQ”并更新该ListBox更改时绑定到的其他可观察的集合。

c# silverlight system.reactive
2个回答
0
投票

尽管名称相似,但IObservable和ObservableCollection完全不相关,而且不幸的是也不兼容。他们有两个非常不同的观察集合模型。

看看Bindable LINQ。它尝试定义LINQ-to-ObservableCollection,以使对ObservableCollection的LINQ查询再次产生ObservableCollection。但是,该项目似乎已死,并且我还没有使用推荐的替代品(Obtics)。


0
投票

尝试ObservableComputations

agreement.Branches
         .SelectingMany(x => x.Products)
         .Distincting()

agreement.Branchs and Products应该是INotifyCollectionChanged(ObservableCollection)类型。

© www.soinside.com 2019 - 2024. All rights reserved.