Wie kann ich definieren, eine IDataErrorInfo-Error-Eigenschaft für mehrere BO-Eigenschaften
Ich bin der Implementierung Validierung in meinem WPF-Projekt über die IDataErrorInfo-Schnittstelle.
Mein business-Objekt enthält mehrere Eigenschaften, die mit der Validierung info. Wie bekomme ich eine Liste ALLER Fehlermeldungen, die mit dem Objekt verknüpft. Mein Gedanke ist, dass es das ist, was die Error-Eigenschaft ist, aber ich nicht track down wer mit dieser für die Berichterstattung über mehrere Eigenschaften.
Dank!
public string this[string property]
{
get {
string msg = null;
switch (property)
{
case "LastName":
if (string.IsNullOrEmpty(LastName))
msg = "Need a last name";
break;
case "FirstName":
if (string.IsNullOrEmpty(LastName))
msg = "Need a first name";
break;
default:
throw new ArgumentException(
"Unrecognized property: " + property);
}
return msg;
}
}
public string Error
{
get
{
return null ;
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Yeah, ich sehe, wo Sie könnte verwenden Sie den indexer. Kein schlechter Weg zu gehen, denke ich. Ich war wirklich konzentriert sich auf die 'Fehler' - Eigenschaft wenn. Ich mag die Vorstellung von die Fehler innerhalb des business-Objekt. Ich denke, was ich tun möchte, nicht nativ, so dass ich nur erstellt, ein Wörterbuch der Fehler (jedes mal aktualisiert, wenn Sie eine Eigenschaft geändert) auf das Objekt und lassen Sie den Fehler zurück ein CarriageReturn getrennte Liste von Fehlern, etwa so :
Error
Eigenschaft optimiert werden kann:get { return string.Join(Environment.NewLine, errorCollection.Values); }
, wenn es leer ist, es gibt nur "", das ist (wie in der SCHRIFTLICHEN Dokumentation für die Schnittstelle) nicht als Fehler betrachtet.Ich denke, es ist viel einfacher zu verwenden, die die Validierung von Attributen.
Die helper-Klasse InputValidation sieht wie folgt aus
Mein Verständnis ist, dass um diese Schnittstelle zu verwenden, die Sie aufzählen der Eigenschaften auf das Objekt, und rufen den indexer einmal für jede Eigenschaft. Es ist die Aufgabe des Aufrufers zu aggregieren Fehlermeldungen.