问题标签 [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 回答
689 浏览

wpf - ValidateWithoutUpdate 不会执行配置的 ValidationRules?

我试图理解为什么对BindingExpression.ValidateWithoutUpdate()的调用实际上并没有做它宣传的事情。

我有一些古怪的验证(我已经从我的示例代码中删除了无聊的细节;我只想说它与 WF4 ModelItem 限制有关)我必须通过附加属性(例如,从代码)添加到绑定中而不是在 xaml 中)。

这里没有什么疯狂的。但问题是第一次显示控件时没有运行验证,因此 UI 中不会显示验证错误。

绑定看起来不错,在值更改后可以工作,但是当第一次显示时,我得到一个皱眉而不是预期的红色边框:

在此处输入图像描述

最初,在将 ValidationRule 添加到 Binding 之后,我尝试调用 ValidateWithoutUpdate 。 这似乎不起作用。后来,我使用 Dispatcher 尝试将这个调用关闭,直到应用程序变得温暖舒适(也许它没有验证,因为茶还没有完成冲泡,我不知道)

我很确定这曾经有效。 一次。再也没有工作过。对我来说可能是一个不正确的观察。

后来,我尝试了各种方法来让ValidateWithoutUpdate真正做一些事情。我什至尝试从事件处理程序中调用它,这将在路上发生

它永远不会起作用。

我需要做什么才能让 BindingExpression.ValidateWithoutUpdate() 进行 friggen 验证?!?!

0 投票
1 回答
586 浏览

wpf - 父子验证规则

我有一个使用 ValidationRules 的复杂场景,我需要一些帮助。我有一个大致如下组织的用户控件:

当 Child 1.Property 1 更改时,我需要对其执行验证。但是,验证规则需要 Child 1.Property 1 的值及其所有同级(变量编号)的 Property 1 值来执行验证。我可以在 Parent ItemsControl 上放置一个 ValidationRule,但我需要将 Control 绑定到 Child1.Property1 以显示错误。目前,当我将验证放在父母身上时,错误会显示在父母身上,而不是孩子身上。我也考虑过使用 BindingGroups,但我希望在更改属性时自动触发验证。据我所知,没有一种方法可以自动强制 Validation 为 BindingGroup 触发。

有没有办法完成我想做的事情?

0 投票
1 回答
58 浏览

wpf - PasswordControl 并手动显示 ValidationRule 错误

当输入的文本太短时,我有自定义的 ValidationRule 会返回错误。这适用于标准 TextBox,因为 Text 属性可以绑定到源,然后将规则添加到绑定中。当用户输入一个太短的字符串时,规则运行并且控件通过在控件周围显示一个红色边框来指示验证问题。

但是出于安全原因,PasswordControl 不允许对 Password 字段进行数据绑定。因此,我改为挂钩丢失焦点事件,然后手动创建并运行 ValidationRule 以查看是否存在问题。但是 Validate 上没有公共方法允许我将错误添加到控件的验证错误集合中。是否可以手动更新 Validate.Errors 集合?如果没有,有没有办法告诉 PasswordControl 以错误状态显示?

0 投票
2 回答
1011 浏览

c# - 将 ComboBox 的 ItemsSource 提交给 ValidationRule

我想将 ItemsSource 对象提交给我的验证类,以检查是否可以在(ItemsSource 的)列表中找到用户输入(处理程序类中的值)

如何将我的 ComboBox 的 ItemsSource 提交给处理程序类 RestrictedComboBoxItemValidationRule?(或我的 ComboBox-controll 而不是 ItemsSource)

0 投票
2 回答
3768 浏览

wpf - ValidationRule 成功后仍显示 WPF TextBox 红色边框

我有一个非常简单的 ValidationRule 的文本框:

问题是即使文本框绑定到非空数据,启动时也会显示红色验证错误边框。

观察验证规则上的断点,我看到它为空字符串调用一次(在绑定更改为有效数据之前),在绑定更新为有效数据之后再次调用。果然,第二次调用返回了ValidResult,但红色边框依然存在。

手动清除文本框并在其中输入新文本会清除红色边框,但只需在其中输入新文本而不先清除它不会。

通过阅读其他人的问题,我可以看到一个潜在的棘手问题,这个 TextBox 位于选项卡控件中。但是,我的问题与其他人相反(尽管验证失败,他们没有得到红色边框),我也没有在任何时候移动到不同的选项卡控件(这是其他问题的原因)。

有什么想法我在这里想念的吗?

0 投票
1 回答
36919 浏览

c# - WPF 文本框的验证规则

我是 WPF 的新手。在我的 UserControl 中,我有 8 个标签及其各自的 8 个文本框,如下所示:

这些文本框文本属性中的每一个都应包含以其各自标签名称结尾的文本,例如TextBox1.text应该是xxxx.abcTextBox2.text应该是 xxxx.def 等等。如果不是,文本框应该有红色边框。

希望我对细节很清楚。所以我需要ValidationRule为每个文本框写不同的内容吗?

你有输入吗??

0 投票
1 回答
717 浏览

asp.net-mvc - 无法访问 .NET MVC 客户端验证上的 ValidationParameters

我正在为我的 .NET MVC 4 应用程序编写自定义验证。这是第一个使用参数的验证,我发现了一些麻烦。

这是我的 C# 代码:

验证属性:

模型客户端验证规则:

这是JS代码,我的问题:

非常感谢您的帮助!

0 投票
1 回答
66 浏览

c# - ValidationRule 是否能够防止控制状态被更新?

也许我没有ValidationRule正确使用,如果是这样,请告诉我正确的方法。

目前,我已经实现了一个WarningForUncheckRule继承自的类ValidationRule,并将其绑定到一个绑定。

我实现代码并false作为结果返回(此处用于测试目的):

我的问题是,如果我返回false这里,只有错误 UI 显示错误消息,但 UI 状态仍然更改

是否可以使用falseValidateResult 来防止 UI 被更新

如果没有,是否有其他方法可以绑定来完成此操作?

0 投票
1 回答
5364 浏览

wpf - WPF 验证错误

在我目前的项目中,我必须处理 WPF 表单中的数据验证。我的表单位于 ResourceDictionnary 的 DataTemplate 中。我可以通过两个按钮来保存和加载表单中的数据,这两个按钮可以序列化和反序列化数据(通过两个DelegateCommand)。

如果我的表单的一个字段为空或无效,则保存按钮将被禁用。由于 UpdateSourceTrigger 属性,每次更改时都会检查一个字段。这就是为什么我需要在我的 C# 代码中知道某个字段是否无效以更新我的保存命令。

目前,我在我的 XAML 绑定中使用了 ExceptionValidationRule,我想知道这是否是一个好习惯。我无法实现 ValidationRule,因为我需要在我的 C# 代码中知道字段是否无效,以更新保存命令(启用或禁用保存按钮)。

在此博客中,我们可以阅读:

在 Setter 中引发异常并不是一个很好的方法,因为这些属性也是由代码设置的,有时可以暂时将它们保留为错误值。

我已经阅读了这篇文章,但我不能使用它,我的 TextBox 在 DataTemplate 中,我不能在我的 C# 代码中使用它们。

所以,我想知道我是否应该更改我的数据验证并且不要使用 ExceptionValidationRule。

0 投票
3 回答
1430 浏览

c# - 将 TextBox 中的值传递给 ValidationRule

我有两个 TextBox 控件(如下),并希望将第一个 TextBox [] 的文本传递给第二个 TextBox [ x:Name="defPointFrom1Txt"] 的 ValidationRule [ MinIntegerValidationRule],x:Name="defPointTo1Txt"而不是当前值 1。我可以在代码中通过命名当第一个 TextBox 中的值更改时,验证规则和设置基于事件。但是,有没有办法在 XAML 中执行此操作以将所有验证逻辑保存在一个位置?

为了完整性,我的验证规则代码如下。

更新:

为了响应以下答案,我正在尝试创建一个 DependencyObject。我这样做如下,但不知道如何在 ValidationRule 代码中使用它(甚至不知道我正确地创建了它)。