protected CloseableViewModel() { _closed = new Subject <Unit>() .DisposeWith(this); _denied = new Subject <Unit>() .DisposeWith(this); _confirmed = new Subject <Unit>() .DisposeWith(this); CancelCommand = ReactiveCommand.Create() .DisposeWith(this); CancelCommand.ActivateGestures() .Subscribe(x => _closed.OnNext(Unit.Default)) .DisposeWith(this); ConfirmCommand = ReactiveCommand.Create(InitialiseCanConfirm()) .DisposeWith(this); ConfirmCommand.ActivateGestures() .Subscribe(x => { _confirmed.OnNext(Unit.Default); _closed.OnNext(Unit.Default); }) .DisposeWith(this); DenyCommand = ReactiveCommand.Create(InitialiseCanDeny()) .DisposeWith(this); DenyCommand.ActivateGestures() .Subscribe(x => { _denied.OnNext(Unit.Default); _closed.OnNext(Unit.Default); }) .DisposeWith(this); }