我从一个可观察到的地方创建了一个反应式命令。调用命令时,它将IsExecuting更改为true,并在第一个发出的值从可观察的更改为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是否不应该变回false?我在这里想念什么?

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

最佳答案

正确。当可观察对象完成时,IsExecuting应该变回原样。这是一个错误。

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

应该是固定的,但不是当前版本(7.1.0)。

10-06 11:24