コード例 #1
0
        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);
        }