public CounterViewModel() { title.Value = "last value: ---"; Title = title.ToReadOnlyReactiveProperty(); CounterValue = counter .ObserveProperty(x => x.Value) .Select(x => x.ToString()) .ToReadOnlyReactiveProperty(); Increment.Subscribe(_ => counter.Increment()); Decrement.Subscribe(_ => counter.Decrement()); Reset.Subscribe(async _ => { // Async Sample var count = await Task.Run(() => { Task.Delay(1500).Wait(); return(CounterValue.Value); }); title.Value = $"last value: {count}"; counter.Reset(); }); }