Festlegen der Validierungsfehlervorlage aus dem Code in WPF

8

Ich habe ein Textfeld in meiner WPF-App. Ich habe ein ControlTemplate für Validierungsfehler wie folgt definiert:

%Vor%

Meine TextBox ist wie folgt:

%Vor%

Wenn nun meine TextBox ValidationRule hinzugefügt wird und ich sie dort validiere, wird die Fehlervorlage korrekt angewendet. Aber ich kann das wegen eines anderen Problems nicht tun.

Also muss ich den Inhalt von TextBox in PreviewLostKeyboardFocus validieren. Ich validiere die TextBox. Jetzt möchte ich die Fehlervorlage für die TextBox im Code zurückstellen, aber ich kann es nicht machen !!

Ich habe das versucht, aber es funktioniert nicht wie geplant ::

%Vor%

Frage 1: Ich möchte wissen, wie die Fehlervorlage zu TextBox

hinzugefügt wird

Frage 2: Ich möchte wissen, wie ich die Fehlermeldung der Kontrollschablone vom Code einstelle. Wie zum Beispiel möchte ich die Standardfehlermeldung "Ungültige Eingabe:" auf "Ungültige Eingabe: Bitte korrekte Eingabe eingeben" ändern.

Ich möchte die oben genannten Dinge im Code hinter nur tun !!!!

EDIT 1:

Das Problem ist, wie setze ich Code hinter Validation.HasError als wahr, weil ich keinen Validator verwende. (oder was soll ich aus einem Code setzen, hinter dem ValidationTemplate angewendet wird ??))

EDIT 2:

Ich mache XML-Binding, also kann ich IDataErrorInfo nicht implementieren !! Ich möchte das nur vom Code her erreichen !! Gibt es eine Möglichkeit, Validation.HasError vom Code hinterher zu setzen?

    
GuruC 25.11.2010, 05:03
quelle

4 Antworten

20

Um "Validation.HasError" im Code festzulegen, können Sie die Validation.MarkInvalid-Methode verwenden

%Vor%

So heben Sie den Wert auf, den Sie verwenden

%Vor%     
Fredrik Hedblad 26.11.2010, 17:20
quelle
5

Danke für die wundervolle Verbindung, die er mir vorgeschlagen hat. Mein Code geht etwas auf diese Weise

%Vor%     
GuruC 01.12.2010 08:20
quelle
4
%Vor%     
decyclone 25.11.2010 09:02
quelle
0

Für Ihre erste Frage. Sie können die ErrorTemplate von Code hinter wie.

setzen %Vor%


Bearbeiten: Für deine zweite Frage. Bitte beachten Sie das folgende Beispiel. sites.google.com/site/html5tutorials/ValidationErrorText.zip

    
Prince Ashitaka 25.11.2010 09:05
quelle