小编nDe*_*Dev的帖子

如何在ReactiveUI中使用WhenAny(...)合并多个observable?

我有一个问题,这是对本网站提出的以下问题的扩展.

当返回类型不重要时,是否有更优雅的方法来合并observable?

我有一个IObservable<Unit>(比方说X),一个反应集合(Y)和一个属性(Z).返回类型并不重要.我只想在任何这些改变时订阅.

我知道如何观察所有3并Subscribe使用Observable.Merge如下.

Observable.Merge(X, Y.Changed, ObservableForProperty(Z).Select(_ => Unit.Default)).Subscribe(..)
Run Code Online (Sandbox Code Playgroud)

它有效.

但是,当我尝试使用WhenAny(...,....,....).Subscribe()时,我的X更改时不会触发订阅.做上述使用WhenAny(...)而不是Observable.Merge(..)?? 的语法是什么?

我喜欢使用,WhenAny(....)因为我ReactiveUI在其他地方使用.

示例:假设我有一个派生自ReactiveObject以下属性的类.

public class AnotherVM : ReactiveObject
{
    public bool IsTrue
    {
        get { return this.isTrue; }
        set { this.RaiseAndSetIfChanged(x => x.isTrue, ref this.isTrue, value); }
    }

    public IObservable<Unit> Data
    {
        get { return this.data; }
    }

    public ReactiveCollection MyCol
    {
       get …
Run Code Online (Sandbox Code Playgroud)

system.reactive observable reactiveui

3
推荐指数
1
解决办法
4084
查看次数

标签 统计

observable ×1

reactiveui ×1

system.reactive ×1