0

この質問は、私が以前に投稿した質問に関連しています (ここ)。

私は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))
                              );

これが起こっている理由はありますか?

4

1 に答える 1

2

Ok、

それを見つけた、私が見落としていたもの:

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

maximumConcurrent を 0 に設定しました。これは、コマンドCanExecuteが常に false であった理由をおそらく説明しています。

于 2012-12-28T16:22:25.933 に答える