取消ReactiveList
项目的最佳方法是什么?
我有:
ReactiveList<SomeObject> myList;
此列表以两种方式订阅:
this.WhenAnyValue(x => x.myList.Count).Subscribe(_ => this.DoSomething());
myList.BeforeItemsRemoved.Subscribe(BeforeItemRemoved);
我想检查BeforeItemRemoved
方法中的某些条件,可以取消从列表中删除此对象,那么如何取消BeforeItemsRemoved
上的项目删除?
答案 0 :(得分:2)
BeforeItemsRemoved是在项目真正从列表中删除之前触发的可观察对象,但您无法阻止它被删除。它的工作方式与INotifyPropertyChanging和INotifyPropertyChanged的工作方式相同,您可以在操作之前及之后获得触发器。
您可以扩展ReactiveList以实现您所需的功能,或者将项目保存在BeforeItemsRemoved中,并在ItemsRemoved触发器上再次添加(更多解决方法而不是解决方案)。