如何观察 ReactiveList 中对象的属性

How to Observe Properties of Objects within an ReactiveList

我有以下问题。我有 一ProductionOrderList = new ReactiveList<ProductionOrderViewModel>();

ProductionOrderViewModel 有一个 属性 Itemsleft,它在内部更新

    private readonly ObservableAsPropertyHelper<int> itemsLeft;


    public int ItemsLeft => this.itemsLeft.Value;

...

    this.itemsLeft = this
             .WhenAny(x => x.Ticks, x => x.Value)
             .ToProperty(this, x => x.ItemsLeft, scheduler: DispatcherScheduler.Current);

我想要完成的是,当列表中的任何项目到达 Itemsleft 属性 为 0 的点时,它应该从列表中删除。

我这样试过

 ProductionOrderList.ItemChanged.Where(x => x.Sender.ProductionOrder.ItemsLeft ==0)
               .Subscribe(v =>
               {
                  // do stuff
               });

但不幸的是它没有用。

非常感谢您的帮助。

所以我找到了一个可行的解决方案,它甚至看起来很干净,但我完全愿意改进。我做了以下

this.WhenAnyObservable(o => o.ProductionOrderList.ItemChanged)
            .Where(x => x.PropertyName == "ItemsLeft")
            .Select(x => x.Sender)
            .Where(x => x.ItemsLeft == 0)
            .Subscribe(x =>
            {
                ProductionOrderList.Remove(x);
            });

希望对遇到类似问题的其他人有所帮助。