2017-02-17 19 views
1

我創建了冷觀察的反應命令。當調用命令時,它將正在執行爲真,並將的第一個發射值從可觀察變爲假。ReactiveCommand正在執行更改爲假後第一個發射值

public class MyViewModel : ReactiveObject 
{ 
    public ReactiveCommand<Unit, long> FooCommand { get; } 

    private readonly ObservableAsPropertyHelper<long> _intervals; 

    public long Intervals => _intervals.Value; 

    public MyViewModel() 
    { 
     FooCommand = ReactiveCommand.CreateFromObservable(
      () => Observable.Interval(TimeSpan.FromMilliseconds(250)) 
      .TakeUntil(DateTimeOffset.Now.AddSeconds(2))); 
     _intervals = FooCommand.ToProperty(this, vm => vm.Intervals); 
    } 
} 

不應該IsExecuting變回可觀察到的完成假,而不是第一個發出的項目嗎?我在這裏錯過了什麼?

請注意,如果以某種方式影響行爲,我將在XAML中使用綁定。

回答

3

正確。當觀察結束時,IsExecuting應該改回。這是一個錯誤。

來源: https://github.com/reactiveui/ReactiveUI/issues/1244

應該是固定的,但在當前版本(7.1.0)。

+0

嗨丹尼爾!我知道這樣的間隔不會完成,但爲了簡潔起見,我省略了像TakeUntil這樣的附加代碼。 – Rok

+0

我改進了這個問題,因爲它引起了一些混淆 – Rok

+0

對不起,我誤解了你的問題。那麼我同意你的看法。我期望同樣的。所以無論是bug還是某人都可以解釋爲什麼它只是等待第一個。 –

相關問題