问题标签 [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.

0 投票
1 回答
938 浏览

wpf - WPF DataGrid 绑定验证和强制转换问题

我想知道 DataGrid 绑定对于不同类型的错误的行为有何不同。我已经建立了一个示例项目:

数据类:

后面的主窗口代码:

和 MainWindow Xaml:

现在,关于日期列 - 当我输入未来日期(从而导致 ArgumentOutOfRangeException)时,仍然可以编辑文本列。如果我提供的日期无效(例如,5 月 35 日),则无法编辑文本列。

为什么 WPF 会有这样的行为?

0 投票
1 回答
756 浏览

c# - 如何让 ObservableCollection 与 IDataError 一起工作

我有一个对话框,显示 ObservableCollection(一个集合 o ints)的各个元素。当用户更改集合的各个值时,我想验证更改。

在我的 VM 中,集合只有一个属性,我的 XAML 绑定到各个元素。

那么如何在集合中的项目更改时调用验证属性索引器?

我对 WPF 还是很陌生,所以我想有一个简单的解决方案。

谢谢你的帮助。

这是 XAML。10 个通道中的每一个都有一个等效的文本框

这是我的虚拟机中的一些代码。grp_ 对象是模型

0 投票
3 回答
327 浏览

c# - 数据绑定、IDataErrorInfo 和复杂属性命名

假设我有 MyClass.cs,其中有一个名为 Name 的属性,然后我有我的 viewModel,它继承了 IDataErrorInfo,我在这个 viewModel 中创建了 MyClass 的多个实例并将它们全部添加到 ObservableCollection< MyClass> 中,这个集合将是DataGrid 的 ItemsSource ,其中一个 DataGridTextColumn 绑定到 Name 属性,这在以下 XAML 中非常好

一切都好,现在我需要为 IDataErrorInfo 提供一个列名,如下所示

问题是,我的 viewModel 中没有这个“名称”属性,它在 MyClass.cs 上,所以我不知道用什么来提供 IDataErrorInfo 列名称,我尝试了 Name 和 MyClass.Name没有成功,有什么建议吗??提前致谢

0 投票
2 回答
270 浏览

wpf - IDataErrorInfo 是否浪费内存?

我有一个包含 50 个左右属性的业务对象列表(1000+),它们有大约 70 个需要执行的不同验证。似乎要走的路是使用验证规则,但我真的很喜欢IDataErrorInfo. IDataErrorInfo为每个对象定义而他们一直使用相同的验证是否浪费内存?

PS:我没有发布代码,因为它看起来庞大而乏味。

0 投票
1 回答
1049 浏览

wpf - Data validation on ShowDialog window in WPF

I have a window that I display as ShowDialog in the window I have some textboxes binding to object that implement INotifyPropertyChannges and IDataErrorInfo. I want that the OK button will enabled just if all thextboxes validted and I want that just if the user click on OK buton the next move will occur.

I can bind the button to ICommand and check the textboxes valitation in CanExcute() but then what can I do in the Excute? the object dont know about the window. I can also check the textboxes valitation and then raise event that all valid and enable the OK button but then there will be dupliacte code because I checked already in the IDataErrorInfo implmention.

So what is the right way?

Thanks in advance

0 投票
1 回答
1287 浏览

c# - IDataErrorInfo - 是否有集合不是空的验证属性?

我不知道我是找不到它还是它不存在,但是是否有任何验证属性可以检查集合是否为空/空?

如果没有,是否有任何关于如何创建自己的验证属性的好资源?

0 投票
1 回答
1713 浏览

wpf - wpf idataerrorinfo 组合框

我有一个简单的视图和视图模型,后者实现了 IDdataErrorInfo 和 IValidationExceptionHandler。该视图包含一个组合框,其 ItemsSource 绑定到一个集合, SelectedValue 绑定到一个属性 - 验证数据错误和异常;属性更新已更改并通知源已更新。

我正在使用数据注释,并且该属性是用必需的以及 Range 属性“装饰”的,我会在执行视图时期望组合框显示错误装饰器和我为必需属性提供的消息。但是,将鼠标悬停在装饰器上时,我注意到消息是“无法转换值”。

如果我发现没有选择任何值,我是否必须检查属性的 getter 中选择的值并返回带有我的消息的 ValidationResult?我认为只使用Required 属性就可以解决问题,但这似乎不适用于组合框?

非常感谢任何帮助。

0 投票
2 回答
4539 浏览

wpf - 为 WPF 结合 DataAnnotations 和 IDataErrorInfo

我正在编写一个 WPF 应用程序,我想使用数据注释来指定Required字段Range等内容。

我的 ViewModel 类使用常规INotifyPropertyChanged接口,我可以使用 C# 4 轻松验证整个对象Validator,但如果它们没有正确验证,我也希望这些字段突出显示红色。我在这里找到了这篇博文(http://blogs.microsoft.co.il/blogs/tomershamam/archive/2010/10/28/wpf-data-validation-using-net-data-annotations-part-ii.aspx ) 讨论如何编写基本视图模型来实现IDataErrorInfo和简单地使用验证器,但实现实际上并没有编译,我也看不到它是如何工作的。有问题的方法是这样的:

GetValue没有提供问题。他可能在谈论GetValue您继承时出现DependencyObject的问题,但语法仍然不起作用(它希望您DependencyProperty作为参数传递)但我正在使用常规 CLR 属性并OnPropertyChanged("MyProperty")在 setter 上调用。

有没有很好的方法将验证连接到IDataErrorInfo接口?

0 投票
1 回答
523 浏览

c# - WPF 绑定到 IDataErrorInfo.Error 属性设计时问题

我想将 TextBox.Text 绑定到返回错误摘要的对象 IDataErrorInfo.Error 属性。我的对象是 DataContext。现在我有一个这样的文本框:

并且在运行时一切正常,但在设计时 Visual Studio 2010 显示错误:在“绑定”上引发了 InvalidOperationException:对象“null”不能用作 PropertyPath 的访问器参数。访问器必须是 DependencyProperty、PropertyInfo 或 PropertyDescriptor。现在有了这个错误(在黄色条中),我无法使用属性工具箱来编辑我的窗口。谁能帮我解决这个错误?

0 投票
4 回答
8962 浏览

wpf - 当其中任何一个发生更改时,如何验证多个属性?

我有两个日期字段:StartDate 和 EndDate。StartDate 必须早于 EndDate。

如果用户将 StartDate 更改为大于 EndDate 的值,则该 DatePicker 周围会出现一个红色边框,反之亦然。如果用户更改了第二个框以使日期范围现在正确,则第一个框仍然存在验证错误。

当其中任何一个发生更改时,如何验证两个日期字段?

在此处输入图像描述

我正在使用IDataErrorInfo

我不能简单地引发 PropertyChange 事件,因为当它们中的任何一个发生更改时我需要验证这两个字段,因此让它们都为另一个引发 PropertyChange 事件将陷入无限循环。

如果另一个日期返回验证错误,我也不喜欢清除日期字段的想法。