私は自分のオブジェクトモデルを説明し、次に何をしたいのかを説明します。コレクション内のコレクションを購読するニースRxの方法
これはSilverlightアプリケーションであり、これらはUI要素にバインドされたモデルオブジェクトです。
契約にはTradingBranchのコレクションがあり、支店を追加または削除することができます。ブランチにはProductのコレクションがあります。
agreement.Branches
.SelectMany(x => x.Products)
.Distinct()
これらのコレクションは、ブランチと製品のマトリックスによって駆動されます。複数のブランチから同じ製品を選択することができます。したがって、Distinct。
本質的に、ブランチのいずれかで使用できるものとして選択されたすべての製品のリストからユーザーが選択できるようにします。私はマトリックスに変更があったときにこのリストを更新したい。
したがって、ブランチにCollectionChangedハンドラを追加するのではなく、Productsコレクションでリッスンするハンドラを増やし、製品が既に存在しているかどうかを確認し、ブランチが削除されたときなどにサブスクライブする必要があるなど、私は単純に「LINQのこの部分を聞いて」、そして変更したときにListBoxをバインドしているこの他の観測可能なコレクションを更新するために使用できる素晴らしいRx構文がありました。