Reactive UI取消从ReactiveList中删除项目

时间:2017-11-21 09:51:59

标签: c# reactiveui

取消ReactiveList项目的最佳方法是什么? 我有:

ReactiveList<SomeObject> myList;

此列表以两种方式订阅:

this.WhenAnyValue(x => x.myList.Count).Subscribe(_ => this.DoSomething());
myList.BeforeItemsRemoved.Subscribe(BeforeItemRemoved);

我想检查BeforeItemRemoved方法中的某些条件,可以取消从列表中删除此对象,那么如何取消BeforeItemsRemoved上的项目删除?

1 个答案:

答案 0 :(得分:2)

BeforeItemsRemoved是在项目真正从列表中删除之前触发的可观察对象,但您无法阻止它被删除。它的工作方式与INotifyPropertyChanging和INotifyPropertyChanged的工作方式相同,您可以在操作之前及之后获得触发器。

您可以扩展ReactiveList以实现您所需的功能,或者将项目保存在BeforeItemsRemoved中,并在ItemsRemoved触发器上再次添加(更多解决方法而不是解决方案)。