.net IDataErrorInfo.Error是否应该检查每个属性?

.net IDataErrorInfo.Error是否应该检查每个属性?,.net,wpf,silverlight,.net,Wpf,Silverlight,IDataErrorInfo.Error是否应该检查每个属性?或者我可以信任任何客户端调用每个属性上的IDataErrorInfo.Item吗?IDataErrorInfo.Error用于报告整个对象的验证状态 例如,如果您的对象具有属性StartTime和EndTime,您可能希望StartTime小于EndTime,并且如果此验证规则被破坏,则不适合显示一个或另一个属性的消息 Error属性也适用于总结对象的总体验证状态。所以答案是否定的——你不应该检查每一处房产。与特定属性相关的错误消息由

IDataErrorInfo.Error是否应该检查每个属性?或者我可以信任任何客户端调用每个属性上的IDataErrorInfo.Item吗?

IDataErrorInfo.Error用于报告整个对象的验证状态

例如,如果您的对象具有属性StartTime和EndTime,您可能希望StartTime小于EndTime,并且如果此验证规则被破坏,则不适合显示一个或另一个属性的消息

Error属性也适用于总结对象的总体验证状态。所以答案是否定的——你不应该检查每一处房产。与特定属性相关的错误消息由

string this[string columnName]
索引器


编辑:这里有一个解释界面应该如何使用的例子。

你说的听起来很合理,但是你有什么可以支持的吗?似乎使用反射来检查所有属性的成本相当高。您可以查看Microsofts的控件(如DataGrid)对实现接口的数据的反应。您可以观察它发出的呼叫。如果您仍然不确信,您可以检查该链接以及该链接的使用示例。答案中的MSDN链接说“请注意,绑定引擎从不使用Error属性,尽管您可以在自定义错误报告中使用它来显示对象级错误。”但是,我在“Error”中遇到了一个断点调用堆栈中包含BindingExpression.TransferValue的:-/