コード例 #1
0
        public CredentialsLoginVM(INeedsLoginCredentials downloader)
        {
            _downloader = downloader;

            _loginEnabled = this.WhenAny(x => x.Username)
                            .Select(IsValidAddress)
                            .CombineLatest(
                this.WhenAny(x => x.LoggingIn),
                (valid, loggingIn) =>
            {
                return(valid && !loggingIn);
            })
                            .ToGuiProperty(this,
                                           nameof(LoginEnabled));

            _mfaVisible = this.WhenAny(x => x.ReturnMessage)
                          .Select(x => x.ReturnCode == LoginReturnCode.NeedsMFA)
                          .ToGuiProperty(this, nameof(MFAVisible));
        }
コード例 #2
0
        public CredentialsLoginView(INeedsLoginCredentials downloader)
        {
            Downloader = downloader;

            if (ViewModel == null)
            {
                ViewModel = new CredentialsLoginVM(downloader);
            }

            InitializeComponent();

            this.WhenActivated(disposable =>
            {
                this.Bind(ViewModel, x => x.Username, x => x.Username.Text)
                .DisposeWith(disposable);
                this.Bind(ViewModel, x => x.LoginEnabled, x => x.LoginButton.IsEnabled)
                .DisposeWith(disposable);
                this.OneWayBind(ViewModel, x => x.ReturnMessage.Message, x => x.Message.Text)
                .DisposeWith(disposable);
            });
        }