问题标签 [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 IDATAError 在控件变为可见时不显示
我对 ErrorTemplate 有一个奇怪的问题。我创建了一个 WPF MVVM 应用程序。我正在使用 ErrorTemplate 和 IDataError 接口来显示错误。在我的表单上,我有一些控件折叠在堆栈面板中。当我显示控件时,错误模板未显示,但错误功能正在工作,因为用户无法保存记录。有谁知道我如何刷新 UI 或显示错误模板?谢谢!
wpf - 需要关于 MVVM 验证的建议
我正在将我现有的应用程序之一转换为 MVVM 模式以改进其结构,但我对什么是进行数据验证的最佳方式感到有些困惑。
目前,该应用程序使用数据绑定来链接 UI 和代码,并使用一些验证规则和值转换器,这些规则和值转换器可以在相似的值上重复使用(每个用于日期等)。
在阅读 MVVM 时,我遇到了 IDataErrorInfo,我觉得它很有吸引力,因为它会将验证排除在视图之外,从而在设置绑定等时略微减少重复代码,并允许更具体的错误消息。
另一方面,如果验证失败,ValidationRules 会阻止绑定数据的传输,这是我需要的,因为我只希望模型值更改一个新的有效值。
我主要担心的是,如果我在视图模型中限制太多,这会使视图中的事情变得困难 - 在一般情况下将事物限制在舒适的水平,然后补救需要更多灵活性的特定情况是否是个好主意风景?
所以我的主要问题是,将验证和转换放在视图模型的属性中还是坚持我的验证规则和值转换器(或两者之间的某种妥协)会更好吗?
c# - WPF/C# IDataErrorInfo 未触发
我的表单上有一个组合框和按钮。组合框中有类别。如果它们是基于布尔值的“系统类别”,我想允许/禁止挂起。
这是我的xml:
这是其中包含两个控件的堆栈面板:
如果确定它是系统类别,我正在尝试让组合框显示工具提示。
DeleteCommand 工作正常,所以当我点击系统类别时,我没有遇到按钮被禁用的问题。
这是我显示工具提示的代码:
有什么建议么?
谢谢,
爱罗克
wpf - WPF 中的验证 - 自定义验证规则或 IDataErrorInfo
作为一个新的 WPF 程序员,我找不到两种不同的验证用户输入的方法之间的区别:
编写自定义验证规则以实现 IDataErrorInfo 的优缺点是什么,反之亦然?我什么时候应该更喜欢其中一个?
更新:
虽然我已经得到了答案,但我找到了可能对其他人有帮助的相关文章。
silverlight - 将 IDataErrorInfo(或验证)添加到自定义 OData 服务(无 WCF RIA 服务)+ MVVM
我没有使用 WCF RIA 服务...我有一个自定义 OData 服务,我的 SL4 应用程序正在使用它。我需要在我的表单中添加验证。我注意到 VS2010 创建的代理没有在实体上实现 IDataErrorInfo。我很想将它添加到我的视图模型中,但我的 SL 应用程序无法识别验证。
是否可以像这样添加验证?很惊讶我在搜索中找不到更多关于此的结果...... :(
.net - 在 WPF PropertyGrid 中实现验证
我已经实现了一个PropertyGrid
并且所选对象(在另一个库中)的属性显示在其中。属性值PropertyGrid
通过绑定绑定到控件。现在,我想对用户在PropertyGrid
控件中输入的值(主要是TextBox
)执行验证,如果值不正确,则向用户显示一条消息。
将有一些常见的验证,如数值、必填字段等和一些与业务逻辑相关的验证(如值不能超过这个等)。
有哪些方法可以实现这个(IDataErrorInfo
或其他)?
wpf - WPF-MVVM / 禁用按钮中的错误处理
我在视图中遇到错误处理问题。我使用 caliburn.micro 和 MEF。
我的虚拟机如下所示:
如果我有一些错误,我将属性 AllPropertiesValid 设置为 false。我将此属性绑定在 Button 属性 IsEnabled 上。
所以在视图中我有这个:
但如果属性 AllPropertiesValid 为 false 按钮仍处于启用状态。我检查 AllPropertiesValid 的值(我在标签上绑定此属性并且标签内容为假)是否为假。
怎么了 ?感谢提前。
编辑:在设计器中按钮被禁用,但加载时窗口按钮被启用。
wpf - UI 虚拟化列表框内的 WPF 验证
我需要在我正在开发的 WPF 应用程序中进行某种数据验证
据我所知,当你添加ValidatesOnDataErrors=True
到 Binding 时,每次 Binding 被解析(可能是每次值变化时,也可能是失去焦点时),Binding 引擎检查绑定源,通过IDataErrorInfo
,访问接口,找出是否有错误。
听起来不错,只有一个警告。为了验证数据,需要对其进行渲染。如果您碰巧ObservableCollection
将该实体中的一个绑定到ListBox
with VirtualizingStackPanel.IsVirtualizing=True
,则仅验证呈现的项目。由于大多数项目都在视口之外,因此它们不会被渲染。
如何强制验证每个项目?删除 UI 虚拟化不是一种选择。
wpf - WPF-验证-验证错误消息由于 AdornerDecorator 而落后于其他控件
如果文本框有错误,我已经在 ViewModel 中实现了 IDataErrorInfo 以返回一个字符串。
但是此错误消息位于 UI 上的其他控件之后,如下所示。
下面是xaml:
请让我知道如何使用 AdornerDecorator 以使错误消息与其他控件重叠并且不会落后。
我的应用程序是这样的,如果我不使用 AdornerDecorator,则根本不会显示错误消息。
wpf - 我们可以在验证模板中有按钮,我们如何将它绑定到 ViewModel 方法?
要求:
当用户输入不存在的forlder名称时需要显示错误信息,如下图所示:
问题:当用户单击“CreateNew”按钮时,我能够显示 UI,但无法在视图模型中调用方法
查看型号代码:
RelayCommand.cs 可以在以下位置下载:http ://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=mag200902MVVM&DownloadId=4357
Xaml 代码:
请注意,我在样式中设置了 DataContext 属性:
请让我知道如何将方法绑定到验证模板中的按钮。