Я опишу свою объектную модель, затем то, что я хочу сделать.
Это приложение Silverlight, и это объекты модели, связанные с элементами пользовательского интерфейса.
Соглашениеимеет коллекцию TradingBranch, ветки могут быть добавлены или удалены.Филиал имеет коллекцию Product.
agreement.Branches
.SelectMany(x => x.Products)
.Distinct()
Эти коллекции управляются матрицей филиалов и продуктов.Одни и те же продукты могут быть выбраны более чем одной ветвью, отсюда и различие.
По сути, я хочу позволить пользователю выбирать из списка всех продуктов, которые были выбраны как доступные для любой из ветвей.Я хочу, чтобы этот список обновлялся при изменении матрицы.
Поэтому вместо того, чтобы добавлять обработчик CollectionChanged для веток, нужно больше обработчиков для прослушивания коллекции Products, чтобы определить, является ли продуктуже есть, а затем нужно отписаться, когда ветви удаляются и т. д., я надеялся, что есть хороший синтаксис Rx, который я мог бы использовать, чтобы просто сказать: «прослушать этот фрагмент LINQ» и обновить эту другую наблюдаемую коллекцию, которую я связываюмой ListBox, когда он меняется.