问题标签 [validationrule]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
794 浏览

c# - WPF - ValidationRule 没有被调用

这是我之前提出的问题的后续问题:

WPF - ValidationRule 没有被调用

在那里我被告知我应该实施INotifyDataErrorInfo,所以我做到了,但它仍然不起作用。

这是xaml:

在视图模型中:

和验证规则:

我还有一个打开 FileDialog 然后更新 ViewModel 的 Path 属性的按钮。

当 TextBlock 更新时,绑定本身会起作用并调用 set 属性,但不会调用验证规则本身。这里有什么遗漏/错误?

0 投票
1 回答
370 浏览

c# - 如何在按钮单击时检查 ValidationResults

我有一堆带有数据验证的文本框,如下所示:

xml

C#

这很好用,每当我在文本框中输入除数字以外的任何内容时,都会弹出错误。现在我有一个发送“表单”的按钮,我希望该按钮在执行任何操作之前检查是否有任何验证错误。我将如何去做。

0 投票
1 回答
1454 浏览

wpf - WPF 4.5 启动时的空文本框验证

我有一个带有验证规则的简单文本框,但在特殊情况下会出现非常奇怪的行为。

如果我使用我的代码,并且我的属性为 0(因为它来自 db),它会按预期工作。TextBox 在开始时有红色边框。

我的验证规则:

问题是我想要这个字段是必需的,所以空是无效的。

因为我希望我的验证规则是:

我很头疼。验证函数返回正确的结果,但没有红色边框。如果我输入正确的值并更改为错误的值(空或 0),现在我得到红色边框。

0 投票
2 回答
977 浏览

wpf - ValidationRule 红色边框问题

在我的 WPF 应用程序中,我为我的 TextBoxes 创建了 ValidationRules,这样它就不会允许一个空字符串,它可以正常工作并显示一个带有文本的红色边框,告诉用户它不能为空。当应用程序启动时,所有字段都是空白等待输入,但我仍然看到它们周围的红色边框。这是正常行为吗?注意:我希望它在用户使用表单时触发 propertychange 事件或 lostfocus 事件后触发,而不是在表单最初加载时触发。

我正在做的验证示例:

我的 TextBoxNotEmptyValidationRule 类:

0 投票
1 回答
95 浏览

.net - 为什么要在 LostFocus 上调用 ValidationRule 派生类需要 ValidationRule 基构造函数?

我试图理解为什么如果我不调用ValidationRule基本构造函数,比如

然后当应该调用验证规则时LostFocus(使用TextBox如下所示),当确实失去焦点时,根本Validate不会调用该函数。但是,如果我在下面更改为, then会被调用,但会无限调用,直到堆栈溢出。以下是相关的 XAML:TextBoxUpdateSourceTriggerPropertyChangedGrainWeightValidate.Validate()

0 投票
1 回答
240 浏览

c# - System.Windows.Controls.ValidationRule 是否仅支持属性的值类型

我正在使用以下 System.Windows.ValidationRule。

我的 XAML 显示如下。

到目前为止,一切都很好。现在在我的 XAML 对话框的代码后面,我按如下方式初始化 ValidationRule。

关键是,当触发 XXXValidationRule.Validate 时,FooObject 属性始终为空。

如果我使用属性 FooObject 的值类型 int,效果相同。

如果我仍然使用值类型 int 并在 XAML 中明确设置属性,如下所示,我会在验证规则中收到正确的值 (99)。

首先,ValidationRule 是否仅支持值类型,或者是否有办法使用上述引用类型?其次,我们是否必须在 XAML 中显式设置此类属性,或者有没有办法在代码隐藏中设置它?

感谢帮助 :-)

0 投票
1 回答
850 浏览

vba - 如何在 VBA/Access 中以编程方式测试验证规则

我在设计表中设置了验证规则,我想在保存记录集中所做的更改之前对其进行测试。

0 投票
1 回答
471 浏览

c# - 通过 ValidationRule 为绑定到 DataTable 的 Datagrid 验证输入

问:如何管理我的 dataGrid 验证规则在更改行/单元格之后而不是之前验证我的输入。

C:我有一个带有自动生成列和验证规则的数据网格:

在用数据库中的数据填充数据网格后,数据网格被绑定到数据表......

...

当我启动我的程序时,所有数据都按预期可视化,并且在构建它时触发了数据网格的验证。但是,如果我将一些新数据添加到我的 dataGrid 中,例如在一个新行中,验证发生在未更改的数据上,而不考虑我写入某个单元格的数据。

似乎我忘记了一些细节,并且解决方案不远。它是 dataTable 和 DataGrid 之间的绑定问题吗?还是我必须以编程方式触发验证?最好的处理方法是什么?

0 投票
0 回答
139 浏览

wpf - 即使行有错误验证规则,也继续编辑数据网格行

我在我的数据网格上放了一些 ValidationRule,验证规则工作正常,但如果我在行上有错误,我无法编辑其他行或其他单元格。

我想允许用户输入错误的值并在之后修复它。我可以用 wpf 验证规则来做到这一点吗?

0 投票
0 回答
104 浏览

wpf - 将 TextBox.Tag 传递给它自己的 ValidationRule

我想使用 TextBox 的“标签”属性来存储无效字符(或最终是正则表达式字符串)以验证文本。在我的简单示例中,我正在检查 TextBox 文本中是否存在“A”的任何实例。

我正确设置了自定义 ValidationRule 和 DependencyObjects,例如:

这有效:

但这不起作用:

...给出以下错误:System.Windows.Data 错误:40:BindingExpression 路径错误:在“object”“CheckStringWrapper”(HashCode=6677811)上找不到“Tag”属性。绑定表达式:路径=标签;DataItem='CheckStringWrapper' (HashCode=6677811); 目标元素是“CheckStringWrapper”(HashCode=6677811);目标属性是“CheckString”(类型“String”)

完整代码:XAML


课程: