这个问题与我前一段时间发布的问题有关(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))
);
有没有理由发生这种情况?
答案 0 :(得分:2)
确定,
发现它,我忽略了一些事情:
LoadTickets = new ReactiveAsyncCommand(null, 1, RxApp.DeferredScheduler);
我已将maximumConcurrent设置为0,这可能解释了为什么命令的CanExecute
始终为false。