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

wpf devexpress自定义编辑器

打开前一个例子

步骤1-自定义FirstName和LastName编辑器字段

如果运行程序,会通知编辑器是空。对于例子,这两个未命名编辑器在第一个LayoutItem(Name)。和最终用户有一个访客左右编辑器查阅到First Name和Last Name字段,分别。如果你看到Google registration form.可以看到输入框显示灰色指示文字当编辑值为空白。DXEditor同样支持NullText特性

有四个属性,可以用在每一个Devexpress编辑器,当显示NullText.

BaseEdit.NullValue 是值被编辑器和它的空白值显示(null或者System.DBNull.Value被默认)

BaseEdit.NullText指定显示文字当编辑器值等于NullValue.

BaseEdit.ShowNullText 决定是否编辑器显示NullText在空白条件

BaseEdit.AllowNullInput控件是否一个最终用户可以清理编辑器

使用NullText特性对于FirstName和LastName编辑器被设置NullText属性对于编辑器

<dxlc:LayoutControl Orientation="Vertical" ItemStyle="{StaticResource itemStyle}" ItemSpace="10"><dxlc:LayoutGroup ItemSpace="10"><dxlc:LayoutItem Label="Name"><dxe:TextEdit EditValue="{Binding FirstName}" NullText="FIRST" /></dxlc:LayoutItem><dxe:TextEdit VerticalAlignment="Bottom" EditValue="{Binding LastName}" NullText="LAST" /></dxlc:LayoutGroup>...
</dxlc:LayoutControl>

请通知NullValue属性设置完全XAML属性元素语法。form属性语法 NullValue="-1"将处理-1字符串值

步骤2-自定义Email字段

email字段应该指定特殊的格式限制无效输入。Masked Input DXEditors特性提供限制数据输入当好的格式数据输出

调用Quick Action Email TextEdit 编辑器。点击省略按钮下到Mask属性调用Mask 编辑器

使用Mask Editor 设置mask:

去抑制验证错误当编辑器为空,设置TextEdit.MaskIgnoreBlank属性为True。

主焦点离开编辑器在验证错误状态,设置BaseEdit.InvalidValueBehavior属性去AllowLeaveEditor。如果属性已分配invalidValueBehavior.WaitForValidValue,编辑器锁住应用程序直到正确的值输入。

如下结果代码

<dxlc:LayoutItem Label="Email"><dxe:TextEdit EditValue="{Binding Email}" MaskType="RegEx"Mask="[a-zA-Z0-9.'_%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}"MaskIgnoreBlank="True" InvalidValueBehavior="AllowLeaveEditor" />
</dxlc:LayoutItem>

步骤3-自定义生日字段

您需要将输入限制在可接受的特定出生日期范围内。DateEdit 支持DateEdit.MinValue和DateEdit.MaxValue属性。设置相应的属性在RegistrationViewModel类然后绑定DateEdit.MinValue和DateEdit.MaxValue属性到视图模型属性:
 

[POCOViewModel]
public class RegistrationViewModel {protected RegistrationViewModel() {MinBirthday = new DateTime(DateTime.Now.Year - 100, 12, 31);MaxBirthday = new DateTime(DateTime.Now.Year - 1, 12, 31);if(this.IsInDesignMode())InitializeInDesignMode();else InitializeInRuntime();}public virtual DateTime MinBirthday { get; set; }public virtual DateTime MaxBirthday { get; set; }...
}
<dxlc:LayoutItem Label="Birthday"><dxe:DateEdit EditValue="{Binding Birthday}" MinValue="{Binding MinBirthday}" MaxValue="{Binding MaxBirthday}" />
</dxlc:LayoutItem>

运行应用程序并单击“生日”字段的下拉按钮,会显示一个日历,用于从定义的范围中选择日期。有必要扩展输入功能,以支持直接在输入框中键入日期。默认情况下,启用日期的文本输入,但需要注意的是,不应用DateEdit MaxDate和MinDate指定的日期范围。此外,DateEdit将锁定应用程序,直到输入有效日期;DateEdit的默认值。InvalidValueBehavior属性为WaitForValidValue。将此属性设置为AllowLeaveEditor允许焦点离开编辑器,即使其输入尚未验证。

<dxlc:LayoutItem Label="Birthday"><dxe:DateEdit EditValue="{Binding Birthday}" InvalidValueBehavior="AllowLeaveEditor"MinValue="{Binding MinBirthday}" MaxValue="{Binding MaxBirthday}"/>
</dxlc:LayoutItem>

DateEdit下拉列表也可以显示DatePicker控件,而不是日历。若要使用DatePicker,请设置BaseEdit。StyleSettings属性设置为DateEditPickerStyleSettings。

<dxlc:LayoutItem Label="Birthday"><dxe:DateEdit EditValue="{Binding Birthday}" InvalidValueBehavior="AllowLeaveEditor"MinValue="{Binding MinBirthday}" MaxValue="{Binding MaxBirthday}"/><dxe:DateEdit.StyleSettings><dxe:DateEditPickerStyleSettings/></dxe:DateEdit.StyleSettings></dxe:DateEdit>
</dxlc:LayoutItem>

结果

结果form显示如下

相关文章:

  • [AutoSar]工程中的cpuload陷阱(三)测试
  • Android13版本新特性介绍
  • 向量机SVM代码实现
  • 你知道什么是SaaS吗?
  • springBoot集成websocket实时消息推送
  • 【uniapp】 video视频层级、遮挡其他弹窗或顶部导航 使用nvue覆盖
  • 《Fine-Grained Image Analysis with Deep Learning: A Survey》阅读笔记
  • 【最新Tomcat】IntelliJ IDEA通用配置Tomcat教程(超详细)
  • 【计算机网络笔记】网络地址转换(NAT)
  • ClickHouse数据一致性
  • LangChain 2模块化prompt template并用streamlit生成网站 实现给动物取名字
  • 代码随想录算法训练营第二十八天| 78 子集 90 子集|| 93 复原IP地址
  • 基于SSM的北海旅游网站设计与实现
  • Windows安装Vmware 虚拟机
  • Axios传值的几种方式
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • Bootstrap JS插件Alert源码分析
  • C# 免费离线人脸识别 2.0 Demo
  • CentOS从零开始部署Nodejs项目
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • Elasticsearch 参考指南(升级前重新索引)
  • Linux快速复制或删除大量小文件
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • Python学习之路13-记分
  • Redis学习笔记 - pipline(流水线、管道)
  • Redux 中间件分析
  • Spring核心 Bean的高级装配
  • 编写符合Python风格的对象
  • 分布式熔断降级平台aegis
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 工作手记之html2canvas使用概述
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 实现简单的正则表达式引擎
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 协程
  • 【干货分享】dos命令大全
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #1014 : Trie树
  • #LLM入门|Prompt#3.3_存储_Memory
  • #微信小程序:微信小程序常见的配置传旨
  • %check_box% in rails :coditions={:has_many , :through}
  • (LeetCode) T14. Longest Common Prefix
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (二十三)Flask之高频面试点
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (区间dp) (经典例题) 石子合并
  • (四)JPA - JQPL 实现增删改查
  • (算法)求1到1亿间的质数或素数
  • (万字长文)Spring的核心知识尽揽其中
  • (已解决)什么是vue导航守卫
  • (转)Scala的“=”符号简介