C# ReactiveCommand在第一次发出值后执行更改为false

C# ReactiveCommand在第一次发出值后执行更改为false,c#,wpf,reactiveui,C#,Wpf,Reactiveui,我从一个冷冰冰的观察者那里创造了一个反应命令。当调用该命令时,它会将IsExecuting更改为true,并将第一个发出的值从可观察变回false public class MyViewModel : ReactiveObject { public ReactiveCommand<Unit, long> FooCommand { get; } private readonly ObservableAsPropertyHelper<long> _inter

我从一个冷冰冰的观察者那里创造了一个反应命令。当调用该命令时,它会将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);
    }
}
公共类MyViewModel:ReactiveObject
{
公共反应命令FooCommand{get;}
私有只读可观察属性帮助间隔;
公共长间隔=>\u interval.Value;
公共MyViewModel()
{
FooCommand=ReactiveCommand.CreateFromObservable(
()=>可观察的时间间隔(时间跨度从毫秒(250))
.TakeUntil(DateTimeOffset.Now.AddSeconds(2));
_interval=FooCommand.ToProperty(这个,vm=>vm.interval);
}
}
IsExecuting不应该在可观察项完成后而不是在第一个发出的项上更改回false吗?我错过了什么


请注意,如果在某种程度上影响行为,我会在XAML中使用绑定。

正确。IsExecuting应该在observable完成时更改回来。这是一只虫子

资料来源:


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

Hi Daniel!我知道这样的间隔是不完整的,但是为了简洁起见,我省略了额外的代码,比如TakeUntil。我改进了这个问题,因为它引起了一些混乱。对不起,我误读了你的问题。那么我同意你的看法。我也希望如此。因此,无论是一个bug还是其他人都可以解释为什么它只等待第一个bug。请注意,这个bug已经修复,并将包含在下一个版本中(希望在下周)@Kent有趣的是,当我浏览源代码时,我确实找到了修复bug的测试,但我没有想到它还没有发布。:)