问题标签 [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.
c# - 是否有可能在 DataGrid 的单元格周围出现错误消息?
这个问题是我昨天在 SO 上发布的问题的后续问题。我已经按照安迪的建议使用INotifyDataErrorInfo
. 我在Class
昨天提到的模型类中使用了它。我在 C-SharpCorner.com 上找到了一篇文章,我也根据我的情况进行了调整。在将这些放置到位并对其进行测试后,我发现它确实捕获了范围限制。但是,它只用DataGrid
红色圈出了问题所在的单元格。它没有显示单元格旁边的错误消息,这是我老板想要的。我想知道老板想要的东西是否在 WPF 中是不可能的DataGrid
?还是我搞砸了?
HandleValidationResults
我在上面第二个链接的方法中设置了一个断点。它正确地将错误消息分配给_errors
集合。这是我修改的方法DataGridTextColumn
:
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
- 看法
--实现了流畅验证的模型:
c# - INotifyDataErrorInfo(有时)不起作用
我编写了一个源自 Textbox 的控件,我可以在其中输入特殊格式的数字。
为了确保这种格式是正确的,我还实现了 INotifyDataErrorInfo 进行验证。然而,经过几次测试,一切似乎都很好。修复错误后,验证会弹出并再次消失。
但是现在,我想在另一个窗口中使用相同的控件,但它不再起作用了。验证发生后,错误被添加到字典中并调用 OnErrorsChanged,但在调用 ErrorHandler 之后,既没有更新 HasError 属性,也没有调用 GetErrors 方法,我不知道为什么会这样。如前所述,在另一个窗口中,一切都按预期工作。
这是控制的重要部分
在 xaml 我正在使用这样的控件
我还尝试将 ValidateOnDataErrors 之类的属性设置为 true 而没有效果(我认为它们默认为 true)
c# - 当 Viewmodel 未调用 ErrorsChanged 事件时,绑定引擎是否还会调用 INotifyDataErrorInfo GetErrors()?
我有一个实现INotifyDataErrorInfo
接口的视图模型。
当更新属性并发生验证错误时,我调用ErrorsChanged
事件,然后绑定引擎知道它必须调用GetErrors(string propertyName)
我的视图模型上的方法,并从那里返回相应IEnumerable
的错误propertyName
。没什么特别的。
但是当我调试时,似乎GetErrors()
是在视图模型属性更改时调用该方法(当然是在调用 INotifyPropertyChanged.PropertyChanged 时)。即使我的视图模型没有调用ErrorsChanged
.
当通知属性更改时,绑定引擎是否会GetErrors()
自行调用?(因此不仅当我的视图模型显式调用时ErrorsChanged
?)
我在文档中找不到它。