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 в команде является ложным. Я проверил, что используя:

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

Есть ли причина, почему это происходит?

0
nl ja de

1 ответы

В порядке,

Нашел, что-то, что я упустил:

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

Я установил maxConcurrent равным 0, что, вероятно, объясняет, почему команда CanExecute всегда была ложной.

2
добавлено
Это правильный ответ :)
добавлено автор Paul Betts, источник