2012-12-28 67 views
0

此問題與我前段時間發佈的問題(here)有關。ReactiveAsyncCommand與CanExecute = null結果CanExecute始終爲false

我以下列方式使用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)) 
          ); 

這是發生這種情況的原因嗎?

回答

2

好吧,

發現,這東西我忽略:

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

我已成立這可能解釋了爲什麼該命令的CanExecute總是假maximumConcurrent爲0。

+1

這是正確的答案:) –