首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ReactiveUI、WPF和验证

ReactiveUI、WPF和验证
EN

Stack Overflow用户
提问于 2016-01-22 17:25:00
回答 2查看 2K关注 0票数 6

我曾经看到过ReactiveUI在过去有验证特性。目前,在6.5版中,我找不到任何与它相关的内容。

您知道在使用ReactiveUI的WPF中是否有多少官方的方法来处理验证任务吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-22 17:48:27

关于RxUI松弛组的总体共识是,人们正在公开额外的验证属性,例如拆分UserNameUserNameError (如果没有错误,则为null )。然后利用平台的验证/错误机制引起用户的注意。

票数 3
EN

Stack Overflow用户

发布于 2019-02-25 11:08:45

您不能看看这个回购https://github.com/reactiveui/ReactiveUI.Validation,也可以在NuGet画廊。

此解决方案基于MVVM模式,因此您的ViewModels必须实现ISupportsValidation、添加规则(ValidationHelper属性)并绑定到视图中的验证规则。

ViewModel

代码语言:javascript
复制
public class SampleViewModel : ReactiveObject, ISupportsValidation
{
    public ValidationContext ValidationContext => new ValidationContext();

    // Bindable rule
    public ValidationHelper ComplexRule { get; set; }

    public SampleViewModel()
    {
         // name must be at least 3 chars - the selector heee is the property name and its a single property validator
         this.ValidationRule(vm => vm.Name, _isDefined, "You must specify a valid name");
    }
}

视图

代码语言:javascript
复制
public class MainActivity : ReactiveAppCompatActivity<SampleViewModel>
{
    public EditText nameEdit { get; set; }

    public TextInputLayout til { get; set; }

    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);

        // Set our View from the "main" layout resource
        SetContentView(Resource.Layout.Main);

        WireUpControls();

        // bind to an Android TextInputLayout control, utilising the Error property
        this.BindValidation(ViewModel, vm => vm.ComplexRule, til);
    }
}

视图示例利用了DroidExtensions (为Mono.Droid项目自动添加),但是您可以将错误消息绑定到视图的任何控件。

希望能帮上忙。

诚挚的问候。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34952572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档