首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用IDataErrorInfo在验证期间启用禁用保存按钮

使用IDataErrorInfo接口可以在验证期间启用或禁用保存按钮。IDataErrorInfo接口是.NET框架中的一部分,用于在数据绑定过程中提供实体对象的验证机制。

IDataErrorInfo接口定义了两个属性:Error和Item。Error属性用于获取整个实体对象的验证错误信息,Item属性用于获取特定属性的验证错误信息。

要在验证期间启用或禁用保存按钮,可以按照以下步骤进行操作:

  1. 在实体类中实现IDataErrorInfo接口,并实现Error和Item属性。在Item属性的get方法中,根据属性的验证规则返回相应的错误信息。

示例代码:

代码语言:csharp
复制
public class Person : IDataErrorInfo
{
    public string Name { get; set; }
    public int Age { get; set; }

    public string Error => null;

    public string this[string columnName]
    {
        get
        {
            string error = null;
            switch (columnName)
            {
                case nameof(Name):
                    if (string.IsNullOrEmpty(Name))
                        error = "Name is required.";
                    break;
                case nameof(Age):
                    if (Age <= 0)
                        error = "Age must be greater than zero.";
                    break;
            }
            return error;
        }
    }
}
  1. 在前端界面中,使用数据绑定将保存按钮的Enabled属性与实体对象的Error属性进行绑定。这样,当实体对象存在验证错误时,保存按钮将被禁用。

示例代码:

代码语言:xaml
复制
<Button Content="Save" IsEnabled="{Binding Path=(IDataErrorInfo.Error), Mode=OneWay, Converter={StaticResource NullToBooleanConverter}}" />

在上述代码中,使用了一个名为NullToBooleanConverter的转换器,用于将Error属性的值转换为布尔值,以控制保存按钮的Enabled属性。

  1. 在后端代码中,可以通过调用实体对象的属性来触发验证过程。当属性值发生变化时,会自动调用实体对象的索引器方法,从而更新Error属性的值。

示例代码:

代码语言:csharp
复制
var person = new Person();
person.Name = "John";
person.Age = -5; // 触发验证过程

if (string.IsNullOrEmpty(person.Error))
{
    // 保存按钮可用,执行保存操作
}
else
{
    // 保存按钮禁用,显示验证错误信息
}

以上是使用IDataErrorInfo在验证期间启用或禁用保存按钮的方法。通过实现IDataErrorInfo接口,可以方便地进行实体对象的验证,并根据验证结果来控制界面元素的状态。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

测试用例(功能用例)——资产类别、品牌、取得方式

其他输入正确 输入以上数据,点击【保存按钮 保存当前新增内容,关闭当前窗口,回到列表页,列表页新增一条记录,状态默认为“已启用” 高 通过 ZCGL-ST-SRS004-016 新增资产类别 类别编码为...取消】按钮 关闭提示信息,不执行禁用操作;回到列表页,该类别状态仍为“已启用” 高 通过 ZCGL-ST-SRS004-047 启用资产类别 【启用按钮有效性验证 超级管理员正确打开资产类别管理页面...,点击【X】按钮保存当前修改内容,关闭当前窗口,回到列表页 高 通过 ZCGL-ST-SRS005-044 禁用品牌 【禁用按钮有效性验证 超级管理员正确打开品牌管理页面 无 点击【禁用按钮 系统弹出提示信息...,不执行禁用操作;回到列表页,该品牌状态仍为“已启用” 高 通过 ZCGL-ST-SRS005-047 启用品牌 【启用按钮有效性验证 超级管理员正确打开品牌管理页面 无 点击【启用按钮 系统弹出提示信息...【取消】按钮 关闭提示信息,不执行禁用操作;回到列表页,该取得方式状态仍为“已启用” 高 通过 ZCGL-ST-SRS006-047 启用取得方式 【启用按钮有效性验证 超级管理员正确打开取得方式管理页面

1K40

【愚公系列】2023年11月 WPF控件专题 Validation控件详解

一、Validation控件详解WPF中,可以使用Validation控件来实现输入验证。Validation控件可以帮助我们在用户输入数据时进行验证,确保数据的有效性。...IDataErrorInfo:这是一个接口,通过实现它,可以使绑定的元素支持数据验证。...3.具体案例WPF中使用Validation控件可以方便地验证用户输入,下面是一个具体的案例:假设有一个注册窗口,用户需要输入用户名、密码和电子邮件地址。...接下来,ViewModel中定义这些属性和验证规则:public class RegisterViewModel : INotifyPropertyChanged, IDataErrorInfo{...由于我们使用IDataErrorInfo接口,Validation控件会自动检查托管数据源的错误。

26212

测试用例(功能用例)——供应商、存放地点、部门管理

),进行新增 超级管理员正确打开“新增供应商”窗口 移动电话:18987767898 输入以上数据,点击【保存按钮 保存当前新增内容,关闭当前窗口,回到列表页,列表页新增一条记录,状态默认为“已启用...地址为空,进行新增 超级管理员正确打开“新增供应商”窗口 地址: 其他输入正确 输入以上数据,点击【保存按钮 保存当前新增内容,关闭当前窗口,回到列表页,列表页新增一条记录,状态默认为“已启用”...,不执行禁用操作;回到列表页,该供应商状态仍为“已启用” 高 通过 ZCGL-ST-SRS007-065 启用供应商 【启用按钮有效性验证 超级管理员正确打开供应商管理页面 无 点击【启用按钮 系统弹出提示信息...“新增存放地点”窗口 备注: 其他输入正确 输入以上数据,点击【保存按钮 保存当前新增内容,关闭当前窗口,回到列表页,列表页新增一条记录,状态默认为“已启用” 高 通过 ZCGL-ST-SRS008...【取消】按钮 关闭提示信息,不执行禁用操作;回到列表页,该存放地点状态仍为“已启用” 高 通过 ZCGL-ST-SRS008-041 启用存放地点 【启用按钮有效性验证 超级管理员正确打开存放地点管理页面

90110

ASP.NET MVC下的四种验证编程方式

目录 一、手工验证绑定的参数 二、使用ValidationAttribute特性 三、让数据类型实现IValidatableObject接口 四、...让数据类型实现IDataErrorInfo接口 一、手工验证绑定的参数 定义具体Action方法的时候,对已经成功绑定的参数实施手工验证无疑是一种最为直接的编程方式,接下来我们通过一个简单的实例来演示如何将参数验证逻辑实现在对应的...保存起来。...二、使用ValidationAttribute特性 将针对输入参数的验证逻辑和业务逻辑定义Action方法中并不是一种值得推荐的编程方式。...四、让数据类型实现IDataErrorInfo接口 上面我们让数据类型实现IValidatableObject接口并将具体的验证逻辑定义实现的Validate方法中,这样的类型能够被ASP.NET MVC

1.4K80

WPF --- TextBox的输入校验

可以轻松地实现对数据的格式、范围、逻辑等方面的验证,并在验证失败时提供相应的反馈信息。ValidationRule主要作用域在前端页面上。...,我们可以先看一下 Binding 的方法列表:可以看到 ValidationRules 是 Binding 下的集合,这意味着 ValidationRule 是 Binding 下使用且可以执行多个校验规则...IDataErrorInfo 主要作用域为后台 ViewModel该接口包含两个成员:Error 和 this[string columnName]。这两个成员允许你在数据绑定时提供验证错误信息。...图片小结以上两种数据校验(IDataErrorInfo、ValidationRule)的方式,均可以实现自定义数据校验,例如对数据的格式、范围、逻辑等方面的验证,并在验证失败时提供相应的反馈信息。...所以两者既可以单独使用,也可以组合使用,即使使用MVVM模式,依旧能够优雅的做数据校验。

37360

ASP.NET MVC5中的Model验证

后台验证 DataAnnotation ValidationAttribute IValidatableObject IDataErrorInfo 前端验证 后台验证 DataAnnotation...ValuationAttribute 除了使用DataAnnotation中预定义的一些特性进行数据验证外,我们还可以自定义一些验证特性。...IDataErrorInfo 实现IDataErrorInfo接口也可以进行数据的验证,示例代码如下: public class Person : IDataErrorInfo { [Display...前端验证 上述验证均是服务器端进行的,除此之外我们也可以使用js客户端进行数据的验证。...除了我们自己手写js代码外,ASP.NET MVC也提供了前端验证方法,要启用ASP.NET MVC提供的前端验证方法需要在页面中引入三个js文件: jquery-1.10.2.min.js(也可以是其它版本的

1.4K20

WPF --- TextBox的输入校验

,我们可以先看一下 Binding 的方法列表: 可以看到 「ValidationRules 是 Binding 下的集合,这意味着 ValidationRule 是 Binding 下使用且可以执行多个校验规则...IDataErrorInfo IDataErrorInfo 是一个接口,Viewmodel 实现接口用于在后台,提供数据验证和错误信息。...小结 以上两种数据校验(IDataErrorInfo、ValidationRule)的方式,均可以实现自定义数据校验,例如对数据的格式、范围、逻辑等方面的验证,并在验证失败时提供相应的反馈信息。...IDataErrorInfo适用于ViewModel做数据校验,可以做一些无法在前端页面做的事情,比如出现异常值是还原为默认值。...所以两者既可以单独使用,也可以组合使用,即使使用MVVM模式,依旧能够优雅的做数据校验。

23320

Confluence 6 为登录失败编辑,禁用和配置验证

默认的情况下,验证码将会在失败登录次数达到的时候显示。 如果为登录失败编辑,禁用和配置验证码: 屏幕的右上角单击 控制台按钮 ?  ...左侧面板中选择 安全配置(Security Configuration) 选择 编辑(Edit) 希望启用验证码:  登录启用验证码(CAPTCHA on login)边上的选择框中选择 启用... 最大允许授权失败尝试次数(Maximum Authentication Attempts Allowed)的输入框中输入数字,这个数字必须大于 0。...希望 禁用(disable)验证码,取消选择 启用(Enable)的选择框。 选择 保存(Save)。 屏幕截图:为登录失败配置验证码 ? 备注 禁用所有密码配置请求,包括登录中使用验证码。 ...必要的情况下,你可以管理员操作,修改电子邮件地址和对错误登录尝试来设置密码,确认,禁用系统属性来正确的禁用密码确定功能。

1.2K10

WPF 表单验证之 INotifyDataErrorlnfo 接口的使用示例

WPF 表单验证之 INotifyDataErrorlnfo 接口的使用示例 目录 WPF 表单验证之 INotifyDataErrorlnfo 接口的使用示例 一、前言 二、参考 三、问题现象 四、实现验证接口...本文将针对 WPF 的 TextBox 文本框,探究其中的一种验证方式 —— 使用 INotifyDataErrorInfo 在数据对象中进行验证。...二、参考 主要参考《WPF 编程宝典》一书的 19.4.1 一节: 之前在网上找资料,大多是提到了基于异常的验证(ExceptionValidationRule)和另一种数据错误验证 IDataErrorInfo...三、问题现象 我们界面上构建一个加法计算的功能,有两个输入框可以用于输入两个加数,右边显示计算结果,最右边是执行计算的按钮,如下图: 两个加数和一个结果都使用可绑定的属性;其中两个加数是完整属性的形式...: 然后是需要验证的属性的 set 块中加上具体的验证代码,我这里使用了之前添加的验证是否为空的方法 ValidateBlank: 另外,之前这两个操作数是 int 类型,如果保持的话,当删除内容

85810

配置SQL Server 2005 Express的Windows和SQL Server身份验证

二、配置SA 默认情况下,SQL Server 2005 Express是采用集成的Windows安全验证禁用了sa登录名。...为了工作组环境下不使用不方便的Windows集成安全验证,我们要启用SQL Server 2005 Express的混合安全验证,也就是说由SQL Server来验证用户而不是由Windows来验证用户...不要关闭这个窗口,接着选择左侧的“状态”,默认情况下,sa登录名是禁用的,因此,我们必须启用sa登录名,选择右侧的登录下的“启用” 最后,我们点击窗口下面的“确定”按钮。...c) 验证sa登录 我们桌面上新建一个文本文件,文件名为TestSQL.UDL,双击这个文件打开“数据链接属性”对话框,点击“提供程序”选项卡,如下图: 点击“下一步”按钮进入“高级”选项卡,输入数据源为...为了下一次使用方便,勾选“允许保存密码”,最后,点击“确定”按钮保存这个数据链接。

1.8K30

测试用例(功能用例)——人员管理、资产入库

高 通过 ZCGL-ST-SRS011-028 资产入库登记 验证资产类别下拉框不显示已禁用资产类别 资产管理员正确打开“资产入库登记”窗口 资产类别1(已启用),资产类别2(已禁用) 无 点击【资产类别...”,弹出供应商下拉框 高 通过 ZCGL-ST-SRS011-031 资产入库登记 验证供应商下拉框不显示已禁用供应商 资产管理员正确打开“资产入库登记”窗口 供应商1(已启用),供应商2(已禁用) 无...弹出品牌下拉框 高 通过 ZCGL-ST-SRS011-034 资产入库登记 验证品牌下拉框不显示已禁用品牌 资产管理员正确打开“资产入库登记”窗口 品牌1(已启用),品牌2(已禁用) 无 点击【品牌】...请选择”,弹出取得方式下拉框 高 通过 ZCGL-ST-SRS011-037 资产入库登记 验证取得方式下拉框不显示已禁用取得方式 资产管理员正确打开“资产入库登记”窗口 取得方式1(已启用),取得方式...保存当前新增内容,返回至列表页,列表页新增一条记录,状态默认为“正常” 高 通过 ZCGL-ST-SRS011-046 资产入库登记 【选择图片并上传】按钮有效性验证 资产管理员正确打开“资产入库登记

1.4K10

测试用例(功能用例)——完整demo(一千多条测试用例)

禁用资产类别:(超级管理员) 资产类别列表页,点击“已启用”状态资产类别后的【禁用按钮,系统弹出提示信息“您确定要禁用该资产类别吗?”...禁用品牌:(超级管理员) 品牌列表页,点击“已启用”状态品牌后的【禁用按钮,系统弹出提示信息“您确定要禁用该品牌吗?”...启用品牌:(超级管理员) 品牌列表页,点击“已禁用”状态品牌后的【启用按钮,系统弹出提示信息“您确定要启用该品牌吗?”...禁用供应商:(超级管理员) 供应商列表页,点击“已启用”状态供应商后的【禁用按钮,系统弹出提示信息“您确定要禁用该供应商吗?”...启用供应商:(超级管理员) 供应商列表页,点击“已禁用”状态供应商后的【启用按钮,系统弹出提示信息“您确定要启用该供应商吗?”

4.9K20

C# API中的模型和它们的接口设计

.NET提供了一些开箱即用的验证接口,不过每个人都有自己特定的需求。 IDataErrorInfo IDataErrorInfo接口早就可以用了,不过现在基本被弃用,因为它用起来很麻烦。...不过,如果你尝试单击“保存按钮同步检查验证状态,那这就不是一个好办法。 此外,ErrorsChanged理论上可以触发两次:一次是立即触发,另一次是异步验证完成后触发。...当用户修改某个字段时,只验证该字段。然后,保存之前,可以调用验证方法强制对模型进行全面检查,包括非用户修改的属性。...字典中应该保存什么以及验证期间何时可以访问它?...ISupportInitialize/ISupportInitializeNotification ISupportInitialize的目的是临时禁用属性/集合变更通知、错误验证等。

1.6K20

Confluence 6 配置验证码(Captcha)来防止垃圾

验证码被启用后,用户将会看到下面随机的图片中的文字,然后用户必须将文字输入到文本框中随着表单同时提交。 屏幕截图:验证码测试示例 ? 默认情况下验证码是禁用的。...当启用后,默认的配置是紧急针对匿名用户在对页面进行编辑和创建的时候需要使用验证码进行校验。你可以为所有用户选择使用验证码,你也可以直为一个特定的用户组选择启用验证码。...你需要具有系统管理员权限来配置验证码,来帮助 Confluence 防止垃圾内容。 如何在 Confluence 启用验证码来防止垃圾: 屏幕的右上角单击 控制台按钮 ?  ...左侧的面板中选择 垃圾防止(Spam Prevention)。 Captcha 中选择 启用(ON)。...如果你希望为一些特定的用户组禁用验证码: 如果你希望任何人都需要使用验证码,选择 没有人(No one)。

1K20

Crypt Sync Files for mac(文件加密同步工具)

将同步文件保存在特定位置(“删除文件夹”)。使用此模式,可以确保避免意外删除文件,并且即使您重新同步几次,也可以始终返回所有文件。“删除文件夹”中存储的文件夹和子文件夹的结构。...Crypt Sync Files for mac更新日志 Crypt Sync Files for mac(文件加密工具) v1.3.1激活版 新应用程式图示 该应用程序可防止同步期间进入睡眠模式或使用...改善文件结构的读取功能启用/禁用在菜单栏中的Dock灰度/彩色图标中显示App图标 菜单栏中启用/禁用同步结果的字符指示(为色觉受限的人显示应用程序的不同状态)可选启用“重置错误指示E”每个新的同步改进模式...“自动同步添加的按钮”重置数据库” 看到“记录所有事件和/或错误”的可能性记录为“记录所有事件”选择事件的可能性,为“错误记录”选择事件的可能性启用/禁用创建“记录所有事件”启用/禁用创建“已添加错误日志...= subfolder /子文件夹/子文件夹已添加错误日志(仅用于记录错误信息:同步目录期间禁用文件夹等,等等)

91620

使用 Replication Manager 迁移到CDP 私有云基础

单击更新peer以保存更改。 要删除peer,请选择peer并单击操作>删除。 使用 SAML 身份验证配置peer 如果您的集群使用SAML 身份验证,请在创建peer点之前执行以下操作。...您还可以发送捆绑包时输入票号和评论。单击收集并发送诊断数据以生成包并打开复制诊断命令屏幕。命令完成后,单击下载结果数据以下载包含捆绑包的 zip 文件。禁用 | 启用- 禁用启用复制策略。...您还可以发送捆绑包时输入票号和评论。 单击收集并发送诊断数据以生成包并打开复制诊断命令屏幕。 命令完成后,单击下载结果数据以下载包含捆绑包的 zip 文件。 禁用 | 启用- 禁用启用复制策略。...使用 Kerberos 身份验证启用集群之间的复制 要启用集群之间的复制,需要额外的设置步骤以确保源集群和目标集群可以通信。...禁用可快照目录 要为启用了快照的目录禁用快照,请使用 右上角下拉菜单按钮中的禁用快照。如果目录的快照存在,则必须先将其删除,然后才能禁用快照。

1.7K10

测试用例(功能用例)——资产申购、统计报表

高 通过 ZCGL-ST-SRS017-062 资产申购查询 【资产类别】按钮有效性验证 资产管理员正确打开资产申购管理页面 无 点击【资产类别】按钮 弹出资产类别下拉框,显示所有已启用、已禁用的类别...资产管理员正确打开按资产类别统计页面 无 无 图表中尾部字符截断使用…表示 低 通过 ZCGL-ST-SRS018-016 按供应商统计 【按供应商统计】按钮有效性验证 资产管理员正确打开统计报表管理页面...资产管理员正确打开按供应商统计页面 无 无 图表中尾部字符截断使用…表示 低 通过 ZCGL-ST-SRS018-023 按品牌统计 【按品牌统计】按钮有效性验证 资产管理员正确打开统计报表管理页面...无 无 图表中尾部字符截断使用…表示 低 通过 ZCGL-ST-SRS018-030 按存放地点统计 【按存放地点统计】按钮有效性验证 资产管理员正确打开统计报表管理页面 无 点击【按存放地点统计】...资产管理员正确打开按存放地点统计页面 无 无 图表中尾部字符截断使用…表示 低 通过 ZCGL-ST-SRS018-037 按取得方式统计 【按取得方式统计】按钮有效性验证 资产管理员正确打开统计报表管理页面

89030
领券