何时使用null vs String.empty调用INotifyDataErrorInfo.GetErrors?

dis*_*osr 10 .net c# validation wpf

InotifyDataErrorInfo.GetErrorsmsdn页面中,它表示使用参数调用GetErrors方法,该参数可以是:

  • 我们要为其检索错误信息的属性的名称
  • 空值
  • 的String.Empty

该文档没有说明何时使用null vs String.Empty调用此方法.我已经在我的应用程序中看到了这两种情况,我需要了解何时我可以期待其中一种情况.

澄清:我不是在问我应该如何实现GetErrors方法(我只是测试null和empty).问题更多的是要理解为什么WPF框架有时尝试使用null调用此方法,有时使用空字符串(我在我的应用程序中遇到了两种情况).如果目的是要求与特定属性无关的错误,为什么只有一个足够的时候为呼叫使用两个不同的值?

Rol*_*Bär 2

当调用者想要知道的不是特定参数的错误而是实体的所有参数的错误时,您必须预期两者nullstring.Empty所以你不应该区分nullstring.Empty

所以这样的事情:

if(string.IsNullOrEmpty(propertyName))
{
    // return all errors
}
else
{
    // return the error for the parameter 'propertyName'
}
Run Code Online (Sandbox Code Playgroud)