我已经实现了IDataErrorInfo
接口来验证我的实体。
<TextBox Text="{Binding User.Name, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}" />
它工作正常,但我想在用户按下保存按钮时重新验证数据。他们是否存在在IDataErrorInfo
中实现此功能的任何方式。
答案 0 :(得分:3)
也许您应该考虑使用INotifyDataErrorInfo接口
这应该给你更多的控制权......包括一个GetErrors方法以及你可以在按钮点击命令上执行的更多(我假设你使用的是MVVM)
在这里找到信息:
http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifydataerrorinfo(v=vs.95).aspx
和一篇好的博客文章:
答案 1 :(得分:2)
IDataInfo需要实现两件事
如果要在保存之前手动验证实体,只需检查.Error属性,并仅在.Error为null或为空时执行保存。我不知道EF可以自动使用IDataErrorInfo的方式。但是,当您的UI以正确的方式实现时,用户不应该选择保存数据,直到一切正常。您可以使用命令的CanExecuteChanged属性来实现它(仅当.Error为null或为空时才使其为true。)