当前位置: 首页 > news >正文

wpf devexpress实现输入验证使用验证规则

打开此项目

目标是一个registration form行为像google registration form。打开Google registration form 研究它的行为。当form是第一次显示,它的“Register”按钮应该启动;编辑器没有提示任何输入错误。输入First Name编辑器字段,清理输入和离开编辑器应该显示的First Name编辑器在错误状态。

在此教程,你可以实现本行为。

最好的审核实现行为是绑定验证规则-一个标准审核被WPF平台提供。在之前继续,审核如下MSDN文档主题:如何实现绑定验证。

可以创建一个验证规则提示一个输入错误对于每一个空编辑器字段添加普通文件夹在项目和一个新文件,ValidationRule.cs,定义如下类

public class RequiredValidationRule : ValidationRule {public static string GetErrorMessage(string fieldName, object fieldValue, object nullValue = null) {string errorMessage = string.Empty;if(nullValue != null && nullValue.Equals(fieldValue))errorMessage = string.Format("You cannot leave the {0} field empty.", fieldName);if(fieldValue == null || string.IsNullOrEmpty(fieldValue.ToString()))errorMessage = string.Format("You cannot leave the {0} field empty.", fieldName);return errorMessage;}public string FieldName { get; set; }public override ValidationResult Validate(object value, CultureInfo cultureInfo) {string error = GetErrorMessage(FieldName, value);if(!string.IsNullOrEmpty(error))return new ValidationResult(false, error);return ValidationResult.ValidResult;}
}

RequiredValidationRule类检测输入值从继承Validate 方法。对于null或者空编辑值,此方法返回一个审核错误消息。

确定使用验证规则,替换RequiredValidationRule实例在Binding.ValidationRules集合在如下。

<UserControl xmlns:Common="clr-namespace:RegistrationForm.Common" ... >...<dxe:TextEdit NullText="FIRST"><dxe:TextEdit.EditValue><Binding Path="FirstName" UpdateSourceTrigger="PropertyChanged" Mode="TwoWay"><Binding.ValidationRules><Helpers:RequiredValidationRule FieldName="First Name"/></Binding.ValidationRules></Binding></dxe:TextEdit.EditValue></dxe:TextEdit>...
</UserControl>

Binding.UpdateSourceTrigger属性设置PropertyChanged - 默认值LostFocus。在LostFocus值之上,验证进程只有当结束时调用-用户离开编辑器。

在EditValue属性可用在任何DXEditors说明绑定机制,考虑如下简单的绑定:EditValue="{Binding FristName,Mode=TwoWay}".

EditValue 是目标属性当绑定应用。对于必须,目标属性总是DependencyProperty(依赖属性)

FirstName属性是源属性。绑定目标属性到源属性。源可以是一个DenpendencyProperty。一个恒定属性或属性触发INotifyProertyChanged.PropertyChanged事件当新值设置。此源属性无论如何不能是字段-必要属性。

绑定可以使用双向绑定模式同样传递输入数据在目标,到密封的潜在源数据。双向绑定行为,通过默认当束缚控件丢失焦点更新源属性。此刷新行为可以被UpdateSourceTrigger指定。对于实例,设置UpdateSourceTrigger参数到PropertyChanged,更新源属性作为目标属性刷新。参考此信息:Binding.UpdateSourceTrigger

此时,将您的注意力转向 DXEditors 如何修改 BaseEdit.EditValue 属性。

http://www.lryc.cn/news/241107.html

相关文章:

  • Vue表单的整体处理
  • 探索实人认证API:保障在线交互安全的关键一步
  • XDR 网络安全:技术和最佳实践
  • 【如何学习Python自动化测试】—— 警告框处理
  • Jenkins Ansible 参数构建
  • 第十五届蓝桥杯(Web 应用开发)模拟赛 1 期-大学组(详细分析解答)
  • 2023亚太杯数学建模B题思路+模型+代码+论文
  • GitHub 报告发布:TypeScript 取代 Java 成为第三受欢迎语言
  • 配置hikari数据库连接池时多数据源不生效
  • matlab 最小二乘拟合平面并与XOY平面对齐
  • jQuery【回到顶部、Swiper轮播图、立即执行函数、链式调用、参数重载、jQuery扩展】(六)-全面详解(学习总结---从入门到深化)
  • day60
  • thingsboard的WebSocket API的使用
  • An issue was found when checking AAR metadata
  • 搭建线上jvm监控
  • 【计算机网络笔记】数据链路层概述
  • vscode-insiders Remote-SSH XHR failed无法访问远程服务器
  • Ubuntu开机显示No bootable devices found
  • 设计模式——行为型模式(二)
  • SpringBoot中企业微信的API调用
  • [前端] V8引擎编译原理
  • 使用Pytorch实现linear_regression
  • 网络安全等级保护收费标准?
  • 16 Go的反射
  • SQL Server 百万数据查询优化技巧三十则
  • list转map(根据某个或多个属性分组)
  • 常见树种(贵州省):012茶、花椒、八角、肉桂、杜仲、厚朴、枸杞、忍冬
  • 千云物流 - 使用k8s负载均衡openelb
  • C语言之字符串函数
  • python中一个文件(A.py)怎么调用另一个文件(B.py)中定义的类AA详解和示例