Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 订阅集合中的集合的好方法_C#_Silverlight_System.reactive - Fatal编程技术网

C# 订阅集合中的集合的好方法

C# 订阅集合中的集合的好方法,c#,silverlight,system.reactive,C#,Silverlight,System.reactive,我将描述我的对象模型,然后我想做什么 它是一个Silverlight应用程序,这些是绑定到UI元素的模型对象 协议包含TradingBranch的集合,可以添加或删除分支。分支机构拥有产品集合 agreement.Branches .SelectMany(x => x.Products) .Distinct() 这些集合由分支和产品矩阵驱动。同一产品可由多个分支机构选择,因此具有独特性 本质上,我想让用户从所有产品的列表中进行选择,这些产品已被选择为可

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

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

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

agreement.Branches
         .SelectMany(x => x.Products)
         .Distinct()
这些集合由分支和产品矩阵驱动。同一产品可由多个分支机构选择,因此具有独特性

本质上,我想让用户从所有产品的列表中进行选择,这些产品已被选择为可用于任何分支。我希望在矩阵发生变化时更新此列表


因此,与其为分支添加CollectionChanged处理程序,然后添加更多处理程序来监听产品集合,确定产品是否已经存在,然后在分支被删除时取消订阅等等,我希望有一些很好的Rx语法,我可以简单地说:“听这段LINQ”并在列表框发生更改时更新我绑定到的另一个可观察集合。

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


看一看。它试图将LINQ定义为ObservaleCollection,这样,对ObservaleCollection的LINQ查询将再次导致ObservaleCollection。然而,这个项目似乎已经死了,我还没有使用推荐的替代品()。

尽管名称相似,但IObservable和observetecollection完全不相关,不幸的是,它们也不兼容。他们有两种非常不同的模式来观察一个集合

看一看。它试图将LINQ定义为ObservaleCollection,这样,对ObservaleCollection的LINQ查询将再次导致ObservaleCollection。不过,该项目似乎已经过时,我还没有使用推荐的替代品()。

试试我的库:

agreement.branchs
.选择多个(x=>x.Products)
.区分()
协议。分支机构
产品
的类型应为
INotifyCollectionChanged
(ObservableCollection)。

请尝试我的库:

agreement.branchs
.选择多个(x=>x.Products)
.区分()
协议。分支机构
产品
的类型应为
INotifyCollectionChanged
(ObservableCollection)