将ObservableForPropertyHelper中的CollectionChanged和PropertyChanged通知与ReactiveUI

时间:2015-08-27 01:09:34

标签: wpf system.reactive reactiveui

我有一个ReactiveObject ViewModel,它包含一个IObservableCollection和一个常规属性,当它被修改时会引发INPC(即vanilla WPF)。

我想实现一个ObservableForPropertyHelper支持的只读,只要常规属性发生更改,或者集合发生更改(引发其CollectionChanged)事件,它将重新进行评估。

我知道我可以使用WhenAnyValue作为常规属性,FromEventPattern为collectionchanged事件创建一个observable,然后使用CombineLatest将它们拼接在一起。我的问题是 - 是否有一种不太可怕的方式来做到这一点?是否有内置的ReactiveUI功能可以帮助我实现这一目标?

1 个答案:

答案 0 :(得分:0)

您可以将ObservableCollection交换为ReactiveUI的ReactiveCollection,它会在集合发生变化时公开IObservable。

您也可以使用ReactiveUI的ObservableForProperty而不是WhenAny,因为您只观察1个属性,所以会更简洁一些。

除此之外,你所描述的是我将如何做到这一点。