这个问题与我前段时间发布的一个问题(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秒我就会调用一个命令,该命令将一个函数的结果通过管道传递到一个列表中。
但是,每次在初始Execute之后,命令上的CanExecute都为false。我使用以下命令进行了检查:
Observable.Interval(TimeSpan.FromSeconds(10), RxApp.DeferredScheduler)
.Subscribe(_ =>
Debug.WriteLine("Can execute in timer " + LoadTickets.CanExecute(null))
);有没有发生这种情况的原因?
发布于 2012-12-29 00:22:26
好的,
找到了,一些我忽略了的东西:
LoadTickets = new ReactiveAsyncCommand(null, 1, RxApp.DeferredScheduler);我将maximumConcurrent设置为0,这可能解释了为什么命令的CanExecute总是假的。
https://stackoverflow.com/questions/14071051
复制相似问题