【问题标题】:A simple RequiredField validator really this complex?一个简单的RequiredField 验证器真的这么复杂吗?
【发布时间】:2011-08-09 20:13:43
【问题描述】:

使用 INotifyDataErrorInfo 我在我的属性设置器中有验证方法,如果我更改字段值然后离开控件(更改焦点)设置器被触发并发生验证并通知 UI,这工作正常,但使用那个界面,如果用户只是按下提交,我怎么能做类似于asp.net中的RequiredField的事情,我似乎无法在任何论坛或博客上找到一个明确的例子:(

我正在使用 Silverlight 4 WCF RIA 和 mvvm-light 工具包,就是这样。我希望我不要把这个复杂化,因为它看起来应该很简单,但似乎无法找到解决方案。

感谢大家的帮助、建议和指点!!!

【问题讨论】:

    标签: validation silverlight-4.0 mvvm mvvm-light wcf-ria-services


    【解决方案1】:

    终于找到了一个简单的解决方案...如果有人有更有效的方法,请告诉我:)

    私人无效验证() { ValidationContext 验证上下文 = new ValidationContext(this, null, null); ICollection vr = new List(); Validator.TryValidateObject(this, validationContext, vr, true); if (vr.Count >= 1) { foreach(vr 中的 var 项) { ManageErrors(((string[])item.MemberNames)[0], new List() { item.ErrorMessage }, true); } } }

    Manage Errors 方法是 Jesse Liberty 所做的 INotifyDataErrorInfo 的简单实现 here

    现在当我的提交方法在我的视图模型中被调用(使用 mvvm-light)时,我调用它并使用简单的 dataAnnotations 验证所有属性 IE

    [必需(ErrorMessage = “是必需的”,AllowEmptyStrings = false)] 公共字符串 SelectedStatus { 得到 { 返回 _selectedStatus; } 放 { _selectedStatus = 值; RaisePropertyChanged("SelectedStatus"); } }

    这不是最优雅的方式,但是......老天,我找不到任何人验证提交!?!?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-26
      相关资源
      最近更新 更多