Я создал реактивную команду от наблюдаемого холода. Когда вызывается команда, она меняет IsExecuting на true и на первое испущенное значение от наблюдаемого назад до false.ReactiveCommand IsExecuting изменяется на false после первого испускаемого значения
public class MyViewModel : ReactiveObject
{
public ReactiveCommand<Unit, long> FooCommand { get; }
private readonly ObservableAsPropertyHelper<long> _intervals;
public long Intervals => _intervals.Value;
public MyViewModel()
{
FooCommand = ReactiveCommand.CreateFromObservable(
() => Observable.Interval(TimeSpan.FromMilliseconds(250))
.TakeUntil(DateTimeOffset.Now.AddSeconds(2)));
_intervals = FooCommand.ToProperty(this, vm => vm.Intervals);
}
}
Не следует ли IsExecuting изменений обратно в ложный после наблюдаемых Завершает, а не на первый излучаемый предмет? Что мне здесь не хватает?
Обратите внимание, что я использую привязку в XAML, если это как-то влияет на поведение.
Hi Daniel! Я знаю, что интервал как таковой не будет завершен, но для краткости я опустил дополнительный код, например TakeUntil. – Rok
Я улучшил вопрос, так как это вызвало некоторую путаницу. – Rok
Извините, я неверно сформулировал ваш вопрос. Тогда я согласен с тобой. Я бы ожидал того же. Так что либо ошибка, либо кто-то может, надеюсь, объяснить, почему она только ждет первого. –