带有CanExecute = null的ReactiveAsyncCommand导致CanExecute始终为false

时间:2012-12-28 14:34:12

标签: wpf reactiveui

这个问题与我前一段时间发布的问题有关(here)。

我以下列方式使用ReactiveAsyncCommand

LoadTickets = new ReactiveAsyncCommand(null, 0, RxApp.DeferredScheduler);

LoadTickets.RegisterAsyncFunction(x => loadTickets())
        .ToProperty(this, x => x.Tickets);

Observable.Interval(TimeSpan.FromSeconds(10), RxApp.DeferredScheduler)
        .InvokeCommand(LoadTickets);

LoadTickets.Execute(null); //initial load

所以,每10秒我想调用一个命令,将一个函数的结果传递给List。

但是,在初始Execute后,每次后续命令的CanExecute都为false。我用:

检查了一下
Observable.Interval(TimeSpan.FromSeconds(10), RxApp.DeferredScheduler)
                        .Subscribe(_ =>
                         Debug.WriteLine("Can execute in timer " + LoadTickets.CanExecute(null))
                              );

有没有理由发生这种情况?

1 个答案:

答案 0 :(得分:2)

确定,

发现它,我忽略了一些事情:

LoadTickets = new ReactiveAsyncCommand(null, 1, RxApp.DeferredScheduler);

我已将maximumConcurrent设置为0,这可能解释了为什么命令的CanExecute始终为false。