如何使RxUI和WPF-Validation一起工作

我正在使用ReactiveUI处理WPF应用程序,并试图创建一个简单的身份验证窗口,例如:

如何使RxUI和WPF-Validation一起工作

文本框为空时,需要立即以错误模板化(红色边框)。在这种情况下,还需要停用“登录”按钮。

关于视图输入验证,当前存在问题,因为扩展名BindValidation()似乎无法正常工作。 (请参见示例:https://github.com/gerardo-lijs/ReactiveUI-Validation-Sample/blob/master/01-Basic-XAML/MainWindow.xaml.cs和推荐的解决方案:ReactiveUI,WPF and Validation

我的解决方法包含来自代码隐藏的经典wpf绑定以及使用ValidationRule派生进行的验证。以及像这样的视图模型中的WhenAnyValue()验证:

IObservable<bool> canLogin = this
    .WhenAnyValue(
        x => x.username,x => x.Password,x => x.IsBusy,(cn,un,pw,isBusy) =>
            !isBusy &&
            !String.IsnullOrEmpty(cn) &&
            !String.IsnullOrEmpty(un) &&
            !String.IsnullOrEmpty(pw));

LoginCommand = ReactiveCommand.CreateFromTask<string,bool>(_ => DoLogin(),canLogin);

如果我设置ValidationStep.RawProposedValue,则经典的WPF验证有效(边界变为红色),而反应式按钮验证与ValidationStep.UpdateValue一起工作。但是他们不能一起工作。

我想念什么或做错什么了?

xuu805 回答:如何使RxUI和WPF-Validation一起工作

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3152883.html

大家都在问