Ich habe eine sehr einfache WPF-Anwendung, in der ich Datenbindung verwende, um einige benutzerdefinierte CLR-Objekte bearbeiten zu können. Ich möchte jetzt eine Eingabevalidierung vornehmen, wenn der Benutzer auf Speichern klickt. Alle WPF-Bücher, die ich gelesen habe, widmen diesem Thema jedoch keinen Platz. Ich sehe, dass Sie benutzerdefinierte Validierungsregeln erstellen können, aber ich frage mich, ob dies für meine Anforderungen übertrieben wäre.
Meine Frage lautet also: Gibt es irgendwo eine gute Beispielanwendung oder einen guten Artikel, der bewährte Methoden zur Validierung von Benutzereingaben in WPF demonstriert?
.net
wpf
data-binding
validation
Mark Heath
quelle
quelle
Aus der Dokumentation zu MS Patterns & Practices :
In der Dokumentation wird erläutert, wie IDataErrorInfo und INotifyDataErrorInfo implementiert werden.
quelle
Persönlich verwende ich Ausnahmen, um die Validierung zu handhaben. Es erfordert folgende Schritte:
Der Trick dabei ist, nur an Objekte zu binden, die von DependencyObject abgeleitet sind. Eine einfache Implementierung von INotifyPropertyChanged würde nicht funktionieren - es gibt einen Fehler im Framework, der Sie daran hindert, auf die Fehlersammlung zuzugreifen.
quelle
Überprüfen Sie auch diesen Artikel . Angeblich hat Microsoft seine Enterprise Library (v4.0) aus ihren Mustern und Praktiken veröffentlicht, in denen sie das Thema Validierung behandeln, aber Gott weiß, warum sie keine Validierung für WPF aufgenommen haben. In dem Blog-Beitrag, auf den ich Sie verweise, wird der Autor erklärt tat es anzupassen. Hoffe das hilft!
quelle
Möglicherweise interessieren Sie sich für die BookLibrary- Beispielanwendung des WPF Application Framework (WAF) . Es wird gezeigt, wie die Validierung in WPF verwendet wird und wie die Schaltfläche Speichern gesteuert wird, wenn Validierungsfehler vorliegen.
quelle
Wenn Ihre Business Class direkt von Ihrer Benutzeroberfläche verwendet wird, ist die Verwendung von IDataErrorInfo vorzuziehen, da dadurch die Logik näher an ihrem Eigentümer liegt.
Wenn Ihre Geschäftsklasse eine Stub-Klasse ist, die durch einen Verweis auf einen WCF / XmlWeb-Dienst erstellt wurde, können / dürfen Sie weder IDataErrorInfo verwenden noch eine Ausnahme für die Verwendung mit ExceptionValidationRule auslösen. Stattdessen können Sie:
quelle