Paramètre d'erreur de Validation du modèle de code dans WPF

J'ai une zone de texte dans mon application WPF. J'ai défini un ControlTemplate pour la validation d'erreur comme suit:

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

Ma zone de texte est comme suit :

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

Maintenant, si ma zone de texte est ajouté ValidationRule puis-je valider là, l'erreur de modèle s'applique correctement. Mais je ne peux pas faire cela à cause d'un autre problème.

J'ai donc à valider le contenu de la TextBox dans PreviewLostKeyboardFocus. Je suis de la validation de la zone de texte. Maintenant, je veux mettre l'erreur de modèle pour la zone de texte dans le code derrière, mais je suis incapable de le faire !!

J'ai essayé ceci mais ça ne fonctionne pas comme intention::

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
    }

Question 1: je veux savoir comment faire pour ajouter l'erreur de modèle de zone de texte

Question 2: je veux savoir comment puis-je configurer le message d'erreur du modèle de contrôle de code. Comme par exemple, je veux modifier la valeur par défaut message d'erreur "Invalid Input:" pour "Entrée non Valide: Veuillez entrer une entrée correcte".

Je veux faire de la mentionnés ci-dessus les choses dans le code derrière seulement!!!!!!!

EDIT 1:

Le problème est de savoir comment dois-je configurer à partir du code de la Validation.HasError comme vrai, car je ne suis pas à l'aide de Validateur. (ou que dois-je mettre de code derrière que ValidationTemplate est appliqué ?? ))

EDIT 2:

Je fais liaison XML, donc il n'y a aucun moyen que je peux mettre en œuvre IDataErrorInfo !! Je veux réaliser ce de code derrière!! Est-il un moyen de mettre de Validation.HasError de code derrière ??

OriginalL'auteur GuruC | 2010-11-25