首次发出值后,ReactiveCommand IsExecuting更改为false

时间:2017-02-17 22:18:34

标签: c# wpf reactiveui

我从冷观察中创建了一个反应命令。当调用命令时,它会将 IsExecuting 更改为true,并将第一个发出值从observable更改为false。

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 是否更改回 后,observable完成而不是第一次发出的项目?我在这里缺少什么?

请注意,如果以某种方式影响行为,我会在XAML中使用绑定。

1 个答案:

答案 0 :(得分:3)

正确。当observable完成时,IsExecuting应该更改回来。这是一个错误。

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

应修复但不在当前版本(7.1.0)中。