问题标签 [idataerrorinfo]
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.
wpf - 如何对 IDataErrorInfo 业务对象中的错误进行单元测试?
我正在为 WPF 应用程序编写(尝试编写)单元测试。
UI 绑定以实现 IDataErrorInfo 的业务对象,这样当我在 View xaml 中设置 ValidatesOnDataErrors=True 时,只要调用绑定业务对象的设置器,就会调用错误索引器 (this[])。那部分很棒。
现在,如果我从 unitTest 调用相同属性的设置器,它永远不会调用错误索引器。如何强制从单元测试中评估 IDataErrorInfo 索引器?
只是为了说明,这是我的一个简单的错误索引器,它包含一个 Name 属性。设置'myObject.Name = string.Empty;' 当我在单元测试中这样做时,确实调用了设置器,但不调用错误索引器。
谢谢!
c# - WPF 验证(IDataErrorInfo)和标签聚焦问题
我TextBox
绑定了一个对象的属性,该对象实现了IDataErrorInfo
. 我设置了Validation.ErrorTemplate
,TextBox
它工作正常。问题是我在 a 上有这些TabControl
,如果我将选项卡更改为另一个选项卡然后返回到初始选项卡(在哪里),验证模板将不再显示TextBox
。看起来它已经过验证(就像值是正确的),但实际上不是。
这是IDataErrorInfo
对象 - 请注意,“正确”值是长度为 2 的字符串:
这是 XAML:
关于我做错了什么的任何想法?
c# - 将验证错误传递给 WPF 中的 UI 元素?
我正在使用 IDataErrorInfo 在 WPF 中的表单中验证我的数据。我在我的演示者中实施了验证。
实际验证正在发生,但应该更新 UI 和设置样式的 XAML 没有发生。
这里是:
问题是我的绑定不Validation.Errors
包含数据。如何从 Presenter 类中获取这些数据并将其传递给此 XAML 以更新 UI 元素?
编辑:
文本框:
验证发生,但数据无效时应用的样式没有发生。
c# - IDataErrorInfo 与 ValueConverter
我以某种方式做错了,但我无法弄清楚:
我有一个这样的模型:
像这样的 ValueConverter:
像这样的视图:
如果有人将“1.1.1950”之类的有效日期修改为“1.1.abc”之类的无效日期,则该值不会传递给 Person 并且不会使其无效。但是显示了生日文本框周围的红色边框。如何保留无效文本(由用户修改)并为 IDataErrorInfo 注册错误?
wpf - WPF 验证和 IDataErrorInfo
注意-我的课程是EntityObject
课程!
我有以下课程:
XAML 如下:
我在那里设置了一个断点和一个Console.Writeline
验证 - 我没有休息。不执行验证。任何人都可以将我按在我的错误所在的地方吗?
wpf - IDataErrorInfo:验证页面何时提交
我正在创建一个 WPF 应用程序,它将使用IDataErrorInfo
我的业务对象实现的数据验证。我一直在使用博客文章中的这个演示来理解ValidatesOnDataErrors
.
该演示是一个简单的应用程序,它将几个文本框绑定到一个联系人对象并实现IDataErrorInfo
验证,ValidatesOnDataErrors=True
在数据绑定中使用。为了有效,文本框必须至少有五个字符。
这是我的问题:在演示中,只要文本框失去焦点,就会触发验证。事实上,当应用程序启动时,文本框初始化为无效状态(红色边框)。我的应用程序必须推迟验证,直到用户单击“确定”按钮提交页面。那时,文本框应该被验证,如果无效则进入错误状态。
那么,我将如何推迟对文本框的验证,直到用户单击“确定”按钮?谢谢你的帮助。
wpf - 使用 ContentPresenter 进行 WPF 验证
我有一个需要验证某些字段的 WPF 用户控件。它绑定到实现 IDataErrorInfo 的类。
当我在另一个已经打开的窗口中将用户控件设置为我的 ContentPresenter 的内容时,我可以看到正在发生验证并返回错误消息,但是,我没有得到任何验证装饰器 - 例如默认的红色轮廓。
如果我输入该字段并离开它(触发重新验证),则会出现验证装饰器。
此外,如果我在它自己的窗口中显示用户控件,它会立即显示验证装饰器。
(我正在使用 Caliburn IResults 在下面执行此操作,例如,Show.Dialog<VM>();
但我怀疑这不相关)
任何人都可以提供任何建议,为什么验证装饰器没有立即出现。(我在我的 ContentPresenter ContentChanged 上猜到了动画,但是,我已将其删除,但仍然遇到问题。
谢谢,克里斯
wpf - Validation.HasError 附加属性
我错过了什么?
1-风格
2 - Viewmodel 实现 IDataErrorInfo 3- 视图中的文本框
3 - 我使用 Caliburn MVVM
我收到“ BindingExpression 路径错误:在 'object' ''PersonWindowViewModel' (HashCode=38783181)' 上找不到 'Validation' 属性。BindingExpression:Path=Validation.HasError; DataItem='PersonWindowViewModel' (HashCode=38783181); 目标元素是'TextBox' (Name='FirstName'); 目标属性是 'NoTarget' (type 'Object')"S
wpf - IDataErrorInfo vs ValidationRule vs 异常
谁能告诉我在 WPF 中哪个是更好的验证方法。
- 实现 IDataErrorInfo
- 创建验证规则
- 抛出异常
在性能、内存泄漏、代码可维护性和重用方面。
wpf - 验证和多重绑定问题
在我的 WPF 应用程序中,我使用以下 xaml:...
第一个绑定使用的视图模型类实现 IDataErrorInfo 以进行验证。问题是,虽然错误在属性设置器中被捕获,但 UI 并没有注意到它。我有一个用错误模板定义的样式,当文本框中发生任何错误时应该应用该样式。我想也许这种情况在多重绑定中是不允许的,因为在我使用单一绑定的地方一切正常。
提前致谢。