Einstellung Fehler bei der Überprüfung-Vorlage von code in WPF

Ich habe eine TextBox in meiner WPF-Anwendung. Ich habe ein ControlTemplate für Fehler bei der überprüfung wie folgt vor:

<ControlTemplate x:Key="validationTemplate">
    <DockPanel LastChildFill="True">
         <TextBlock DockPanel.Dock="Bottom"  Text="Invalid Input: "></TextBlock>
                 <AdornedElementPlaceholder />
    </DockPanel>
</ControlTemplate>

Mein Textfeld ist wie folgt :

<TextBox Validation.ErrorTemplate="{StaticResource validationTemplate}">                                              
    <TextBox.Text>
        <Binding Path="TEXT1" ValidatesOnDataErrors="True" validatesOnExceptions="True">
         </Binding>
    </TextBox.Text>
</TextBox>

Nun, wenn meine TextBox Hinzugefügt wird ValidationRule und dann habe ich es überprüfen, die Fehler-Vorlage gilt richtig. Aber ich kann das tun, weil ein anderes problem.

Also muss ich überprüfen den Inhalt der TextBox in PreviewLostKeyboardFocus. Ich bin Validierung der TextBox. Jetzt will ich die error-template für das Textfeld im code-behind-aber ich bin nicht in der Lage, es zu tun !!

Habe ich versucht, doch es funktioniert nicht, wie Gegenaktionen::

private void blockTextBox_PreviewLostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
    {
        TextBox txtBox = sender as TextBox;
        txtBox.Template = this.FindResource("validationTemplate") as ControlTemplate;

        //this behaves strange; it removes the TextBox and places the ErrorTemplate. 
       //I want it to behave like the way WPF does internally wherein it places 
       //the error template around TExtBox
    }

Frage 1: ich will wissen, wie Sie die Fehler-Vorlage TextBox

Frage 2: ich möchte wissen, wie ich die Fehlermeldung von der Steuerung-Vorlage von code. Wie zum Beispiel, ich möchte zum ändern der Standard-Fehlermeldung "Ungültige Eingabe: ", um "Ungültige Eingabe: Bitte geben Sie die korrekte Eingabe".

Möchte ich die oben genannten Dinge in der code-behind-nur !!!!

EDIT 1:

Das problem ist, wie kann ich aus dem code hinter Validierung.HasError als wahr, weil ich bin nicht mit jedem Validator. (oder was muss ich einstellen von code hinter ValidationTemplate angewendet wird ?? ))

EDIT 2:

Ich Tue, XML binding, so gibt es keinen Weg, ich kann IDataErrorInfo implementieren !! Ich möchte erreichen, das von der code-behind-nur!! Gibt es eine Möglichkeit, um die Validierung.HasError von code hinter ??

InformationsquelleAutor GuruC | 2010-11-25
Schreibe einen Kommentar