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