问题标签 [inotifydataerrorinfo]

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 回答
23 浏览

c# - 是否有可能在 DataGrid 的单元格周围出现错误消息?

这个问题是我昨天在 SO 上发布的问题的后续问题。我已经按照安迪的建议使用INotifyDataErrorInfo. 我在Class昨天提到的模型类中使用了它。我在 C-SharpCorner.com 上找到了一篇文章,我也根据我的情况进行了调整。在将这些放置到位并对其进行测试后,我发现它确实捕获了范围限制。但是,它只用DataGrid红色圈出了问题所在的单元格。它没有显示单元格旁边的错误消息,这是我老板想要的。我想知道老板想要的东西是否在 WPF 中是不可能的DataGrid?还是我搞砸了?

HandleValidationResults我在上面第二个链接的方法中设置了一个断点。它正确地将错误消息分配给_errors集合。这是我修改的方法DataGridTextColumn

0 投票
1 回答
96 浏览

wpf - 需要从 ValidationBaseClass 公开 HasError 属性以查看具有流畅验证的模型

我需要帮助实现 INotifyDataErrorInfo 接口,其中 SfTextBoxEx 放置在 SfTextInputLayout 中。

WPF 与 MVVM 使用 Caliburn.Micro 框架。

请找到以下项目结构以按问题理解。

1) 文件夹名称:基础结构文件:ValidatedPropertyChangedBase.cs

-- 它包含 INotifyDataErrorInfo 的实现。

2) FolderName : Model File : TestModel.cs -- 包含两个继承自 ValidatedPropertyChangedBase 的属性 -- 还包含使用 FluentValidation 验证属性的类

4) FolderName : View File : HomeView.xaml -- 带有两个 SfTextInputLayout 和 SfTextBoxExt 的标准窗口

4) FolderName : ViewModel File : HomeViewModel.cs -- 标准视图模型,模型作为属性,验证触发。--在这里,如果我在验证方法上设置断点,我可以看到返回的错误是正确的,但它不会触发 UI 以显示错误消息。--在将属性与文本框绑定时,我已经设置了 ValidatesOnNotifyDataError=true。

如果有问题,请检查并指导我。注意:我正在使用同步融合控件,但我也尝试使用标准文本框,它不会触发 errorchanged 事件。

我还使用了来自以下网址的 IntoifyDataError 实现:https ://www.thetechgrandma.com/2017/05/wpf-prism-inotifydataerrorinfo-and.html

--ValidatedPropertyChangedBase

--ViewModel

- 看法

--实现了流畅验证的模型:

0 投票
1 回答
65 浏览

c# - INotifyDataErrorInfo(有时)不起作用

我编写了一个源自 Textbox 的控件,我可以在其中输入特殊格式的数字。

为了确保这种格式是正确的,我还实现了 INotifyDataErrorInfo 进行验证。然而,经过几次测试,一切似乎都很好。修复错误后,验证会弹出并再次消失。

但是现在,我想在另一个窗口中使用相同的控件,但它不再起作用了。验证发生后,错误被添加到字典中并调用 OnErrorsChanged,但在调用 ErrorHandler 之后,既没有更新 HasError 属性,也没有调用 GetErrors 方法,我不知道为什么会这样。如前所述,在另一个窗口中,一切都按预期工作。

这是控制的重要部分

在 xaml 我正在使用这样的控件

我还尝试将 ValidateOnDataErrors 之类的属性设置为 true 而没有效果(我认为它们默认为 true)

0 投票
1 回答
32 浏览

c# - 当 Viewmodel 未调用 ErrorsChanged 事件时,绑定引擎是否还会调用 INotifyDataErrorInfo GetErrors()?

我有一个实现INotifyDataErrorInfo接口的视图模型。

当更新属性并发生验证错误时,我调用ErrorsChanged事件,然后绑定引擎知道它必须调用GetErrors(string propertyName)我的视图模型上的方法,并从那里返回相应IEnumerable的错误propertyName。没什么特别的。

但是当我调试时,似乎GetErrors()是在视图模型属性更改时调用该方法(当然是在调用 INotifyPropertyChanged.PropertyChanged 时)。即使我的视图模型没有调用ErrorsChanged.

当通知属性更改时,绑定引擎是否会GetErrors()自行调用?(因此不仅当我的视图模型显式调用时ErrorsChanged?)

我在文档中找不到它。