c# - ReactiveCommand IsExecuting 在第一个发出值后更改为 false

标签 c# wpf reactiveui

我从一个冷的可观察对象创建了一个 react 命令。调用命令时,它会将 IsExecuting 更改为 true,并将 first emitted value 从 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 是否应该在可观察对象完成后而不是在第一个发出的项目上 变回 false?我在这里缺少什么?

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

最佳答案

正确。当 observable 完成时,IsExecuting 应该变回原样。这是一个错误。

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

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

关于c# - ReactiveCommand IsExecuting 在第一个发出值后更改为 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42308342/

相关文章:

c# - TDD 是否意味着不考虑类设计?

c# - 解除绑定(bind)wpf listview的最佳方法

wpf - 谁拥有进程/主线程?

windows-phone-7 - 响应式(Reactive) UI 样本

c# - 编写我自己的 IScheduler 来管理线程,最好的方法是什么?

c# - 使用 C# 将数据发送到接受 JSON 数据的通用处理程序

c# - 如何防止将方法添加到类中?

c# - 无法在 Docker 上运行 VS 项目

c# - iPhone 喜欢 WPF 项目中的红色徽章通知?

c# - 当 View 中事件触发时,ReactiveUI 在 ViewModel 上调用命令