问题标签 [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.
asp.net - 使用 ViewModel 时的 asp.net mvc IDataErrorInfo 验证
我为我的模型使用了 IDataErrorInfo 验证。但是当我在视图模型中使用这些模型类时,验证不会发生。
下面的示例视图模型
现在,如果 Category 或 Subcategory 类直接用作视图模型,则验证工作正常。但是,如果使用 CategoryViewModel,则不会发生验证。
wpf - 使用 MVVM 实现使用 IDataErrorInfo 验证数据的异常
我正在尝试使用 IDataErrorInfo 验证 MVVM 应用程序中的数据,但遇到了一些问题。
当我将 TextBox 设置为无效值时,验证工作正常。但是在我将 TextBox 的值设置为有效值之后,我得到了这个异常:
这是视图的代码:
这是 ViewModel 的代码:
这两天想弄清楚这是怎么回事!有一双新鲜眼睛的人能猜出来吗?
编辑:这是 TextBoxs 处理程序的代码:
另外,我使用的是 .Net Framework 3.5 版。我的应用程序非常复杂,因此我无法创建一个仅重新创建这部分的小项目。我希望你们中的一些人已经遇到过这个问题并且知道如何解决它。
再次感谢大家!
wpf - IDataErrorInfo 接口如何工作?
我目前正在研究我的 WPF 应用程序的验证,并看到了IDataErrorInfo
. 然而,关于如何使用它的指南很少,更糟糕的是,没有人解释它是如何工作的。
在 MSND.com 网站上给出了: MSDN
我知道这里发生了什么,但我不知道它对我的数据有什么影响。
什么时候使用这两个属性?假设有人设置Age
为 400:属性上的 setter 被调用。错误会阻止它被设置吗?如果不是,它只是警告数字不正确,有什么办法阻止某人按原样保存信息?没有IsValid()
办法检查,是吗?
很想知道窗帘后面发生了什么。
wpf - 使用 IDataError 进行验证
我的视图模型中有以下验证方法(示例仅显示一列“ItemNumber”):
验证触发,但我不知道如何将它传达给我的数据网格。我正在使用单独的 Dto(因此上面的 SelectedProjectExpenseItem.ItemNumber,SelectedProjectExpenseItem 是我的 Dto),而不是直接在我的视图模型中使用属性。这是我的数据网格:
我想使用一种样式,比如带有红色边框和说明错误的工具提示,来表示行或单元格有问题。然而,我发现的每个使用样式的示例都直接在视图模型中具有属性,我无法弄清楚如何将其移植到我的 Dto 中。
任何帮助表示赞赏。
wpf - ObservableCollection 上的 IDataErrorInfo
我有一个实现 IDataError 的视图模型。在视图模型中,我有一个 ObservableCollection。ObservableCollection 在我的视图中填充了一个数据网格:
我还有一个表示数据网格中选定项目的属性(它基于 Dto):
这是Dto:
我想使用 IDataError 来验证数据网格(SelectedProjectExpenseItem)的选定行中的值,但由于我的网格绑定到 ObservableCollection,我的视图模型中没有任何属性;因此,我只能对 ObservableCollection 使用 IDataError,而不是集合中的单个项目,这对我没有帮助,因为我知道如何查看集合的“内部”。我也不能对我的 SelectedProjectExpenseItem 使用 IDataError。例如:
这不会触发,因为我的数据网格列未绑定到 SelectedProjectExpenseItem.ItemNumber,它绑定到 ObservableCollection 中的 ItemNumber。
我正在寻找任何指导,因为这真的让我很困惑。
- - - - - - - - - - - - - - 编辑: - - - - - - - - - - --------
好的,我为我的 DTO 创建了一个单独的视图模型:
现在,我的主虚拟机中的以下行出现问题:
它说:
无法将类型“System.Collections.Generic.IList”隐式转换为“System.Collections.Generic.IList”。存在显式转换(您是否缺少演员表?)
有任何想法吗?
- - - - - - - - - - - - - - 编辑: - - - - - - - - - - --------
我找到了这个链接,看看我是否可以复制这个人在做什么:
.net - .Net MVC2如何在使用自定义ValidationAttribute时向ModelState添加错误
我有以下 ValidationAttribute 类
它在构造函数中有两个日期属性名称和一个运算符。
在验证方法中,返回语句 LeftDate Operator RightDate 的结果。
因为这是一个 AttriuteTargets.Class 属性,所以我知道框架不可能知道导致验证失败的属性。但我知道是左日期属性失败了,因此我想将模型状态中错误的 ID 设置为此属性。这样做的原因是我希望在表单中标记失败的字段。
问题:如何修改ModelState中添加到错误集合中的错误项,使其id对应于表单中的特定字段?
c# - 如何通过在父类上实现 IDataErrorInfo 来验证子对象
我正在使用 MVVM 架构开发 WPF 应用程序。我是 WPF 的业余爱好者,所以请耐心等待。
我有两个模型类。父类具有另一个(子)类的对象作为其属性。(我的意思是嵌套对象而不是继承对象)
例如,考虑以下场景。
我想使用 Enterprise Library Validation Block 来验证 Employee 实体的属性。
我可以通过在员工类中实现 IDataErroInfo 接口来做到这一点,如下所示
我不想为我创建的每个子模型实现 IDataErroInfo。
有没有办法通过在父(公司)类上实现 IDataErrorInfo 来验证 Employee 对象?
还有任何触发器可以开始验证对象。我只想在我想要的时候而不是一直验证对象。
c# - 在 WPF 中使用 IDataErrorInfo 设置文本框的样式
我正在尝试更改文本框的样式。到目前为止,我已经使我的文本框在其边框的右侧显示了一个星号,并带有以下代码:
但我希望我的文本框在右上角显示一个红色三角形。我怎样才能在我的文本框中获得这种风格?
谢谢。
wpf - 验证规则的问题
我正在尝试获取验证规则以返回错误。我在我的模型中实现了 IDataErrorInfo,其中包含我的业务对象属性和在事件验证失败时返回的消息。我还创建了一个验证规则。问题是,验证规则正在触发(为它添加书签),但规则中的 IDataErrorInfo 引用永远不会出错,即使我的模型的 IDataErrorInfo 实现生成了一个错误。数据网格肯定显示验证失败。
我通过让规则和模型返回两条不同的消息来测试它,并且总是返回模型的版本。就像我的规则看不到 IDataErrorInfo 对象中的内容,或者它只是在创建它的新实例。
数据网格:
验证规则:
对象 "idei" 不为空,但 idei.Error 始终是零长度字符串 ("")
模型/业务对象:
c# - 来自属性设置器函数的 WPF 数据验证
我有一个绑定到 GUI 元素的类,如下所示:
MaxDistance 属性的设置器在此处实现:
问题是,当我在 TextBox 中输入无效值时,出现的工具提示显示“调用目标已引发异常”而不是“最大距离必须大于最小距离”。
我应该怎么做才能让工具提示读取 ArgumentException 的字符串?注意:标准类型转换异常也必须正确显示(即,如果我输入字符串而不是浮点数,标准错误消息仍应出现)。
我无法将异常移动到 IDataErrorInfo 接口中,因为如果数据无效,则不能在对象上设置数据,并且由于属性与对象的其他属性相互依赖,因此无法通过转换器或典型的验证规则...
在上面的示例中,验证在那里并且正在工作,它只是没有向用户提供有用的信息。
谢谢您的帮助