问题标签 [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 - 如何强制 WPF 重新验证控件?
我有一个带有业务规则的屏幕,它根据业务数据显示一些字段,而不显示其他字段。然后我使用可见性来显示/隐藏它们。
我的业务对象实现了 IDataErrorInfo。
我遇到的问题是某些验证仅在显示该字段时才适用。
在此代码摘录中,第一个 IF 仅在 type_account 为 INTERNAL 时进行验证
我遇到的问题是,由于我的 BO 的初始状态不是“内部”,那么即使在用户选择“内部”之后,验证也不会再次发生。
我如何“强制”在第一次之后进行验证。当然我已经检查过如果初始状态是“内部”那么它可以工作
wpf - 带有多个错误消息的 IDataErrorInfo 属性
似乎其他人遇到了这个问题: Validation.HasError does not trigger again if new error come in while already true
Validation.Error 未使用最新的错误消息进行更新。
它显示上一个错误,而不是最后一个实际调用的错误。当我记录每次返回时,返回的 PropertyX 大于或 PropertyX 小于,但它不会在我的工具提示中显示该消息。它将显示“必需”。
我还发现,当返回 PropertyX 大于或 PropertyX 小于时,我的工具提示转换器不会被调用。
这是验证代码:
到底是怎么回事?
wpf - 如果是 int 列 DataGrid,IDataErrorInfo 不会触发
我有一个 DataGrid,它的 Column 绑定了一个“int”类型的属性。我正在使用 IDataErrorInfo 进行验证。我的验证规则运行良好,一旦我更改单元格的值,它们就会被触发。假设用户输入的值小于 0,我在工具提示中显示相应的错误。当用户清除文本框的值时出现问题。在这种情况下,IDataErrorInfo 永远不会触发,因此我无法通过工具提示显示用户验证错误,说明该值不能为空。DataGrid 在文本框周围加上红色边框,这很好,还有一个“!” 在行标题处签名,但工具提示中没有验证错误,因为 IDataErrorInfo 从未被触发。如果文本框的值被清除,我可以做些什么来触发 IDataError 信息?
编辑:
XAML
DisplayOrder 属性
c# - 在使用 IDataErrorInfo 在 MVVM 中执行验证时,我应该在哪里执行检查以查看数据库中是否已存在值?
开始使用所有这些 MVVM 的东西,我正在关注Josh Smith 的这篇文章,其中讨论了使用 MVVM 时的验证方法。这个例子很简单,我开始想知道如何在我自己的应用程序中使用它。
在我的 BLL 中,我有一个BookInfo
实现 IDataErrorInfo 以报告无效值的类,例如“发布日期不能在将来”或“页数不能为负数”。然后我AddBookViewModel
会检查新创建的状态BookInfo
,看看是否存在错误,并且AddBookView
会在相应的文本框旁边显示一个红色斑点。这些东西很简单,就像帖子中的示例一样。
现在我的BookInfo
班级还拥有一个作者 ID 列表。在向我的数据库添加新 BookInfo 时,我需要检查这些作者 ID 是否已经存在。
是否应该在我的BookInfo
课堂上进行这项检查?如果是这样,那么我必须将 BLL 的AuthorManager
对象传递给BookInfo
' 的构造函数,因为前者将包含诸如CheckIfExists(int authorID)
.
这是推荐的方法吗?如果数据库中有很多记录怎么办?动态检查会影响性能吗?
另一方面,在BookInfo
课堂上和其他地方进行一些检查似乎有点混乱......尤其是当所有这些检查都可以归类到同一组时......即。确保新创建的BookInfo
对象有效。或者也许我错了,因为我真的没有经验来做出正确的判断。
一些指导?
wpf - 强制选择一个或多个复选框
我有三个复选框,它们有自己的错误检查,以检查它们是否有效,但我还想强制在继续之前必须至少检查一个。我目前正在使用 IDataErrorInfo 进行单个错误检查,并尝试使用 BindingGroups 来检查是否至少检查了一个但没有成功。
这是 XAML,
以及后面的错误检查代码
如果至少有一个未被选中,关于如何让复选框显示错误的任何建议?
mvvm - MVVM 模型应该是什么样的?
您好,我有 3 个关于 MVVM 模型的问题。
- 有没有办法绕过那个多余的
PropertyChanged("PropName");
- 将 POCO 对象包装到 WPF 的最佳方法是什么
INotifyPropertyChanged, IDataErrorInfo
- 我应该如何在 ViewModel 中与(WPfWrapers - POCO)交互 - 通过强制转换或属性......
谢谢。
wpf - WPF Data Validation? Anything out there better than IDataErrorInfo?
Is there a preferred practice to do Data Validation from within your ViewModel?
Looking into it some people seem to prefer IDataErrorInfo
and some prefer to roll out their own validation frameworks (http://www.codeproject.com/KB/WPF/wpf_custom_validation.aspx)?
I'm wondering what the "Best Practice" is for Data Validation? Is there something that is accepted by the community when it comes to adhering to the M-V-VM guidelines?
Oh, and an FYI, I'm using Prism as my MVVM framework, but I don't think it has any laid out code for Validation assistance.
silverlight - 绑定数据格式中的 Silverlight 错误
当属性通过绑定 (MVVM) 获取其值时,我试图处理所有可能的错误,例如超出给定范围。
通过在我要检查的控件中使用“ValidatesOnDataErrors”,这是完美的。
当我尝试检查给定值是否被模型视图中的该属性接受时,问题就来了。
例如,当我在 DateTimePicker 控件中写入“june”时,绑定被破坏(属性是 DateTime),因此它永远不会获得它的值,我无法像处理其余规则一样控制错误。
我应该如何尝试这个?有什么解决办法吗?
提前致谢!!
validation - 如何在 ItemsControl 内的 TextBox 上使用 ValidatesOnDataErrors
我正在尝试使用 IDataErrorInfo 验证 TextBox 的内容。下面列表的来源是一个列表,每个项目都是显示的。当我ValidatesOnDataErrors=True
在 TextBox 上放置文本的绑定时,它没有按预期工作。我该怎么做呢?
更新: 发布模型、视图模型、视图和代码隐藏的精简版本
ViewModel 和模型
代码背后
看法
wpf - WPF + MVVM + 企业库验证块
我正在启动一个新的 WPF MVVM 应用程序,并且试图了解如何“比以前更好地”处理验证 - 在我使用IDataErrorInfo
模型和 viewModel 之前。它工作正常,但以后很难扩展,并且在大多数情况下需要大量手动接线。我确信这IDataErrorInfo
仍然是连接 ViewModel 验证的好方法,但我想尝试使用 Enterprise Library 来验证模型,但是有没有办法一次实际验证一个属性而不是整个对象?
还是有其他巧妙的方法来使用 EL 生成的配置?
有什么想法或其他建议吗?
更新
我想我或多或少找到了我一直在寻找的东西:(来自http://entlib.codeplex.com/discussions/233057)
但这意味着我ViewModel
必须处理模型实例,而不是执行以下操作:
看起来我必须在模型实例上工作或在ViewModel
层中验证——我希望避免这种情况。
...还是我错过了对大多数人来说非常知名且显而易见的东西...?
欢迎任何建议。