public ShellViewModel() { _username = new ObservableProperty <string>(this, () => Username); _password = new ObservableProperty <string>(this, () => Password); _logInCommand = new ObservableCommand(); _cancelCommand = new ObservableCommand(); _username.CombineLatest(_password, (username, password) => !string.IsNullOrWhiteSpace(username) && !string.IsNullOrWhiteSpace(password)).Subscribe(_logInCommand); _logInCommand.Subscribe(ExecuteLogIn); _cancelCommand.Subscribe(ExecuteCancel); }