如何通过 IDataErrorInfo 在按下保存按钮时验证我的实体?

发布于 2025-01-08 15:14:36 字数 258 浏览 0 评论 0原文

我已经实现了 IDataErrorInfo 接口来验证我的实体。

<TextBox Text="{Binding User.Name, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}" />

它工作正常,但我想在用户按下保存按钮时重新验证数据。他们是否有任何方法可以在 IDataErrorInfo 中实现此功能。

I have implemented IDataErrorInfo interface to validate my entities.

<TextBox Text="{Binding User.Name, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}" />

It works fine but I want to re-validate the data when the user presses the save button. Is their any way that exists to achieve this functionality in IDataErrorInfo.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

旧城烟雨 2025-01-15 15:14:36

也许你应该考虑使用 INotifyDataErrorInfo 接口,

这应该给你更多的控制...包括 GetErrors 方法和更多你可以在按钮单击命令上执行的方法(我假设你正在使用 MVVM)

在这里找到信息:

http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifydataerrorinfo(v=vs.95).aspx

以及一篇不错的博客文章:

http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2009/11/18/silverlight-4-rough-notes-binding-with-inotifydataerrorinfo.aspx

Maybe you should consider using INotifyDataErrorInfo Interface

this should give you more control... including a GetErrors method and more which you could execute on the button click command (I asume you are using MVVM)

find Infos here:

http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifydataerrorinfo(v=vs.95).aspx

and a good blog post here:

http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2009/11/18/silverlight-4-rough-notes-binding-with-inotifydataerrorinfo.aspx

岁月苍老的讽刺 2025-01-15 15:14:36

IDataInfo 需要实现两件事:

  1. 索引器属性
  2. Error 属性,当一切正常时,该属性为 null 或 string.Empty。否则就是错误描述。

如果您想在保存之前手动验证实体,则只需检查 .Error 属性并仅在 .Error 为 null 或空时进行保存。我不知道 EF 可以自动使用 IDataErrorInfo 的方式。但是,当您的 UI 以正确的方式实现时,用户不应该选择保存数据,直到一切正常。您可以使用命令的 CanExecuteChanged 属性来实现此操作(仅当 .Error 为 null 或空时才使其为 true)。

IDataInfo requires two things to be implemented

  1. An indexer property
  2. Error property which is null or string.Empty when everyting is OK. Otherwise it is an error description.

If you want to manually validate your entity before saving, you can just check the .Error property and do a save only when .Error is null or empty. I do not know of a way in which the EF could automatically make use of IDataErrorInfo. However when your UI is implemented in the right way, the user shouldn't have the option to save the data until everything is ok. You can implement this using the CanExecuteChanged property of a command (make it true only when .Error is null or empty).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文