gpt4 book ai didi

c# - WPF 的 Validation.Error 和 Validation.HasError 的奇怪行为

转载 作者:太空宇宙 更新时间:2023-11-03 16:57:47 24 4
gpt4 key购买 nike

我有一个 TextBox,它应该只包含一个有效的整数。它使用自定义 ValidationRule 进行验证。我遇到的问题是,当 TextBox.Text 无效时,说“3a”,然后我键入另一个“a”,然后 TextBox 的附加属性 Validation.HasError 从 TRUE -> FALSE -> TRUE 更改。只要 Validation.HasError 为 FALSE,我的软件就会使用react,但 TextBox.Text 在那个时间点是“3a”,这是不可取的。

这是我的看法:TextBox.Text="3a"和 Validation.HasError=TRUE。现在我再输入一个“a”,然后会发生以下情况。首先,验证过程删除现有的 ValidationError 并引发一个 Validation.Error 事件,其中包含 ValidationErrorEventArgs.Action=”Removed”。现在 Validation.HasError=FALSE。紧接着,验证过程添加了一个新的 ValidationError 并引发了一个 Validation.Error 事件,其中包含 ValidationErrorEventArgs.Action=”Added”。现在又是 Validation.HasError=TRUE。

我所能做的就是对 Validation.Error 事件使用react,然后检查源对象的 Validation.HasError 附加属性以查看它是真还是假。不幸的是,当 TextBox.Text=”3a” 显然不是有效整数时,Validation.HasError 返回 false。

任何想法都会很有帮助。谢谢:)

最佳答案

如果您的验证依赖于此,您可能需要具体检查是否添加或删除了错误:

(e.Action == ValidationErrorEventAction.Added) doStuff();

关于c# - WPF 的 Validation.Error 和 Validation.HasError 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/949335/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com