Laden...

UserControl definierte TextBoxen mit ErrorProvider ansprechen

Erstellt von oehrle vor 10 Jahren Letzter Beitrag vor 10 Jahren 844 Views
O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 10 Jahren
UserControl definierte TextBoxen mit ErrorProvider ansprechen

Hallo, arbeite geradwe an einer Applikation, die von mir kreierte UserControls verwendet.
Jedes dieser UserControls beinhaltet ein Bitmap (Werkzeuggeometrie mit Bemassunggslinien) und and diese Bemassungslinien hänge ich dann noch Textboxen an. Wenn die Applikation läuft und der User dementsprechend ein Werkzeug auswählt, werden von ihm Daten abgeftagt und in die Textboxen eingetragen. Die Eingabedaten weden in eine Klasse geschrieben, welche mit INotifyPropertyChanged versehen ist. Die Textboxen der Usercontrols werden sind mit DataBindings an die Eigenschaften der Klasse mit den Eingabedaten gebunden.
Nun mein Problem. Wenn der User Daten für das Werkzeug eingibt, dann prüfe ich Eingabegrenzen ab. Wenn der User einen Wert eingibt der außerhalb dem Bereich liegt, möchte ich die TextBox rot erschienen lassen und den ErrorProvider ausgeben. Wie kann ich aber in der Klasse in der die Property geändert wird herausfinden, welches Control (TextBox) gerade dran ist oder war umd diese dem ErrorProvider übergeben zu können?
Wie kann ich das machen, oder ist mein PRoblem schlecht geschildert?

49.485 Beiträge seit 2005
vor 10 Jahren

Hallo oehrle,

Wie kann ich aber in der Klasse in der die Property geändert wird herausfinden, welches Control (TextBox) gerade dran ist oder war umd diese dem ErrorProvider übergeben zu können?

gar nicht. Und das solltest du auch auf keinen Fall tun. Das Modell-Objekt hat das GUI nicht zu kennen. Das muss immer andersherum laufen.

Ich habe zwar gerade nicht parat, wie das mit dem ErrorProvider geht, aber ich denke, dass es irgendwie über IDataErrorInfo laufen müsste.

herbivore

F
10.010 Beiträge seit 2004
vor 10 Jahren

Ja, der ErrorProvider erkennt am Binding welches Property er per IDataErrorInfo abfragen muss.
Und der ErrorProvider wird per INotifyPropertyChanged benachrichtigt.

Und hier hast du einen Errorprovider der die Textbox dann einfärbt:
Customizable ErrorProviders