我有一个ReactiveObject ViewModel,它包含一个IObservableCollection和一个常规属性,当它被修改时会引发INPC(即vanilla WPF)。
我想实现一个ObservableForPropertyHelper支持的只读,只要常规属性发生更改,或者集合发生更改(引发其CollectionChanged)事件,它将重新进行评估。
我知道我可以使用WhenAnyValue作为常规属性,FromEventPattern为collectionchanged事件创建一个observable,然后使用CombineLatest将它们拼接在一起。我的问题是 - 是否有一种不太可怕的方式来做到这一点?是否有内置的ReactiveUI功能可以帮助我实现这一目标?
答案 0 :(得分:0)
您可以将ObservableCollection交换为ReactiveUI的ReactiveCollection,它会在集合发生变化时公开IObservable。
您也可以使用ReactiveUI的ObservableForProperty而不是WhenAny,因为您只观察1个属性,所以会更简洁一些。
除此之外,你所描述的是我将如何做到这一点。