IDataErrorInfo in WinForms
-
05-07-2019 - |
Frage
Können IDataError Informationen richtig in einer WinForms-Anwendung verwendet werden? In der Vergangenheit tat ich meine Bindung die übliche Art und Weise (1) und hat die Validierung in dem OnValidating Ereignisse der besonderen Kontrolle. Ich mag die Datenvalidierung auf das Domänenmodell bewegen, so dass ich einfach Benutzeroberflächen auslagern und kann, so dass die gesamte Logik ist an einem Ort.
Ich war auf der Suche in IDataErrorInfo aber alles, was ich beschäftigt sich mit WPF und die App in Entwicklung finden ist ausschließlich eine WinForms-Anwendung.
Ich habe auch bemerkt, dass die Bindung, die in WPF in System.Windows.Data ist und die Bindung gewöhnt, dass ich immer bin verwendet, ist in System.Windows.Forms (was ich nicht angezeigt zu haben, wenn ich versuche, es als eine Ressource hinzufügen - I 3.5) .Aside der Eigenschaft „ValidatesOnDataErrors“ gibt es einen Unterschied zwischen den beiden bin mit
(1) die übliche Art und Weise Wesen:
myControl.DataBindings.Add(new Binding("Text", this.domainModel, "Property"));
Lösung
Dies funktioniert mit dem Errorprovider Komponente in Windows Forms.
Für eine komplette, aber sehr einfach und kurze Anleitung finden Sie unter dieses Blog-Post .
Andere Tipps
Ja, arbeitet IDataErrorInfo
in WinForms. Zum Beispiel wird DataGridView
dies sowohl automatisch verwendet pro Zeile und pro-Zelle. Aber es ist implementierungsspezifisch und ist nicht automatisch auf andere Bindungen angewendet. Ich schrieb einmal einen Code, es zu einem Fehler-Anbietern zu verbinden und die Arbeit über Änderungsereignisse zu tun, aber ich habe es nicht leider zur Hand. Aber ich scheine es zu erinnern, war nicht sehr groß.