【问题标题】:Combine CollectionChanged and PropertyChanged notifications in ObservableForPropertyHelper with ReactiveUI将 ObservableForPropertyHelper 中的 CollectionChanged 和 PropertyChanged 通知与 ReactiveUI 结合起来
【发布时间】:2015-08-27 14:17:39
【问题描述】:

我有一个 ReactiveObject ViewModel,它包含一个 IObservableCollection 和一个在修改时引发 INPC 的常规属性(即普通 WPF)。

我想实现一个 ObservableForPropertyHelper 支持的只读模式,它会在常规属性更改或集合更改(引发其 CollectionChanged)事件时重新评估。

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

【问题讨论】:

  • 请在您的代码中提供“糟糕”的实现,然后我们可以尝试为您改进它。现在很难确定你真正想要什么,而且我们需要做大量的工作来尝试猜测你想要什么。请方便我们为您解答。

标签: wpf system.reactive reactiveui


【解决方案1】:

您可以将 ObservableCollection 替换为 ReactiveUI 的 ReactiveCollection,它会在集合更改时公开 IObservable。

您也可以使用 ReactiveUI 的 ObservableForProperty 代替 WhenAny,这样会更简洁一些,因为您只观察 1 个属性。

除此之外,你所描述的就是我会怎么做。

【讨论】:

    猜你喜欢
    • 2021-08-16
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-31
    相关资源
    最近更新 更多