internal Command(Action action, IObservable <bool> isEnabled, bool value)
                {
                    _subject.OnNext(value);
                    _remover   = isEnabled.Subscribe(_subject);
                    _isEnalbed = new ObservableWithValue <bool>(_subject, value);
                    _action    = action;

                    _disposables.Add(_isEnalbed);
                    _disposables.Add(_subject);
                }
            internal Command(Action action, bool isEnalbed)
            {
                _action  = action;
                _subject = new Subject <bool>();
                _subject.OnNext(isEnalbed);
                _isEnabled = new ObservableWithValue <bool>(_subject, isEnalbed);

                _disposables.Add(_isEnabled);
                _disposables.Add(_subject);
            }