Wann wird INotifyDataErrorInfo.GetErrors mit null vs String.empty aufgerufen?

10

In der msdn-Seite für InotifyDataErrorInfo.GetErrors heißt es, dass die Methode GetErrors mit einem Parameter aufgerufen wird, der entweder:

sein kann
  • Der Name der Eigenschaft, für die Fehlerinformationen für
  • abgerufen werden sollen
  • Null
  • String.Empty

Die Dokumentation sagt nicht, wenn diese Methode mit null vs String.Empty aufgerufen wird. Ich habe beide Fälle in meiner App gesehen und muss verstehen, wann ich das eine oder andere erwarten kann.

Klarstellung: Ich frage nicht , wie ich die GetErrors-Methode implementieren soll (ich teste einfach sowohl auf Null als auch auf Leer). Die Frage ist mehr zu verstehen, warum das WPF-Framework versucht, diese Methode manchmal mit null und manchmal mit einer leeren Zeichenfolge aufzurufen (ich habe beide Fälle in meiner App gefunden). Wenn Sie nach Fehlern fragen möchten, die nicht an eine bestimmte Eigenschaft gebunden sind, warum sollten Sie zwei verschiedene Werte für den Aufruf verwenden, wenn nur einer ausreicht?

    
disklosr 25.01.2016, 12:59
quelle

3 Antworten

1

Sie müssen sowohl null als auch string.Empty erwarten, wenn der Aufrufer nicht den Fehler für einen bestimmten Parameter, sondern die Fehler für alle Parameter der Entität wissen möchte. Sie sollten also keinen Unterschied zwischen null und string.Empty machen.

So etwas auf diese Weise:

%Vor%     
Roland Bär 25.01.2016, 14:57
quelle
1

WPF ruft InotifyDataErrorInfo.GetErrors (null / string.Empty) auf, um Fehler des gesamten Ansichtsmodells zu erhalten. Alle Steuerelemente, die Datenkontext oder -bindung aufweisen, um das Modell mit "Gesamtansichtsmodellfehlern" anzuzeigen, werden mit der Fehlervorlage gerendert. Zum Beispiel haben Sie View Model Credentials mit zwei Eigenschaften: UserName, Password. Sie können etwas wie folgt implementieren:

%Vor%

In den meisten Fällen können Sie jedoch null zurückgeben, wenn string.IsNullOrEmpty (propertyName).

    
Oleksandr Bilyk 21.03.2016 17:28
quelle
0

Wann wird INotifyDataErrorInfo.GetErrors mit null vs String.empty aufgerufen?

Wenn Sie einzelne Eigenschaften validieren möchten, rufen Sie

auf %Vor%

vom Setter dieser Eigenschaft.

Wenn Sie die gesamte Entität überprüfen möchten, rufen Sie

auf %Vor%

von einem "zentralen" Ort, wie Speichern klicken oder Fenster schließen.

    
Ondřej 10.10.2016 07:31
quelle

Tags und Links