public ReactiveTimerViewModel(ReactiveTimerModel _model) { Model = _model.AddTo(DisposeCollection); ReadOnlyReactiveTimer = Observable.Merge( Model.ReactiveTimer, Model.ChangeStop().Select(_ => (long)0) ).ToReadOnlyReactivePropertySlim() .AddTo(DisposeCollection); StartCommand = Model.CanStart().ToReactiveCommand().AddTo(DisposeCollection); StartCommand.Subscribe(start).AddTo(DisposeCollection); PauseCommand = Model.CanPause().ToReactiveCommand().AddTo(DisposeCollection); PauseCommand.Subscribe(pause).AddTo(DisposeCollection); StopCommand = Model.CanStop().ToReactiveCommand().AddTo(DisposeCollection); StopCommand.Subscribe(stop).AddTo(DisposeCollection); }