Cette page vous a-t-elle été utile ?
Votre avis sur ce contenu est important. N'hésitez pas à nous faire part de vos commentaires.
Vous avez d'autres commentaires ?
1500 caractères restants
Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

Validation.ErrorTemplate, propriété attachée

Obtient ou définit le ControlTemplate utilisé pour générer les commentaires de l'erreur de la validation sur la couche d'ornements.

Espace de noms :  System.Windows.Controls
Assembly :  PresentationFramework (dans PresentationFramework.dll)
XMLNS pour XAML : http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

See GetErrorTemplate, SetErrorTemplate
<object Validation.ErrorTemplate="ControlTemplate" .../>

Valeur de propriété

Type : System.Windows.Controls.ControlTemplate
Le modèle par défaut définit une bordure rouge autour de l'élément orné.

Champ d'identificateur

ErrorTemplateProperty

Propriétés de métadonnées définies à true

IsNotDataBindable

Le modèle WPF de liaison de données vous permet d'associer des ValidationRules à votre objet Binding. Si l'utilisateur entre une valeur non valide, vous pouvez fournir des commentaires à propos de l'erreur sur l'application interface utilisateur (UI). Une façon de fournir de tels commentaires consiste à affecter à la propriété jointe Validation.ErrorTemplate un ControlTemplate personnalisé.

Pour obtenir une présentation détaillée de la validation, consultez la section sur la validation des données dans Vue d'ensemble de la liaison de données.

Cet exemple montre comment utiliser un ErrorTemplate et un déclencheur de style pour fournir la rétroaction visuelle pour signaler à l'utilisateur l'entrée d'une valeur non valide en fonction d'une règle de validation personnalisée.

Le contenu de texte de la TextBox dans l'exemple suivant est lié à la propriété Age (de type int) d'un objet de source de liaison nommé ods. La liaison est définie pour utiliser la règle de validation AgeRangeRule pour que, lorsque l'utilisateur entre des caractères non numériques ou une valeur inférieure à 21 ou supérieure à 130, un point d'exclamation rouge apparaisse à côté de la zone de texte et une info-bulle avec le message d'erreur s'affiche lorsque l'utilisateur place le pointeur de la souris sur la zone de texte.


<TextBox Name="textBox1" Width="50" FontSize="15"
         Validation.ErrorTemplate="{StaticResource validationTemplate}"
         Style="{StaticResource textBoxInError}"
         Grid.Row="1" Grid.Column="1" Margin="2">
  <TextBox.Text>
    <Binding Path="Age" Source="{StaticResource ods}"
             UpdateSourceTrigger="PropertyChanged" >
      <Binding.ValidationRules>
        <c:AgeRangeRule Min="21" Max="130"/>
      </Binding.ValidationRules>
    </Binding>
  </TextBox.Text>
</TextBox>


L'exemple suivant montre l'implémentation AgeRangeRule qui hérite de ValidationRule et remplace la méthode Validate. La méthode Int32.Parse () est appelée sur la valeur pour vérifier qu'elle ne contient pas de caractères non valides. La méthode Validate retourne un ValidationResult qui indique si la valeur est valide en fonction de l'interception d'une exception pendant l'analyse et si la valeur d'âge ne se trouve pas entre la limite inférieure et la limite supérieure.


public class AgeRangeRule : ValidationRule
{
    private int _min;
    private int _max;

    public AgeRangeRule()
    {
    }

    public int Min
    {
        get { return _min; }
        set { _min = value; }
    }

    public int Max
    {
        get { return _max; }
        set { _max = value; }
    }

    public override ValidationResult Validate(object value, CultureInfo cultureInfo)
    {
        int age = 0;

        try
        {
            if (((string)value).Length > 0)
                age = Int32.Parse((String)value);
        }
        catch (Exception e)
        {
            return new ValidationResult(false, "Illegal characters or " + e.Message);
        }

        if ((age < Min) || (age > Max))
        {
            return new ValidationResult(false,
              "Please enter an age in the range: " + Min + " - " + Max + ".");
        }
        else
        {
            return new ValidationResult(true, null);
        }
    }
}


L'exemple suivant montre le ControlTemplatevalidationTemplate personnalisé qui crée un point d'exclamation rouge pour signaler à l'utilisateur une erreur de validation. Les modèles de contrôle sont utilisés pour redéfinir l'apparence d'un contrôle.


<ControlTemplate x:Key="validationTemplate">
  <DockPanel>
    <TextBlock Foreground="Red" FontSize="20">!</TextBlock>
    <AdornedElementPlaceholder/>
  </DockPanel>
</ControlTemplate>


Comme indiqué dans l'exemple suivant, l'ToolTip qui affiche le message d'erreur est créée à l'aide du style textBoxInError. Si la valeur de HasError est true, le déclencheur affecte à l'info-bulle de la TextBox actuelle sa première erreur de validation. La RelativeSource a la valeur Self en faisant référence à l'élément actuel.


<Style x:Key="textBoxInError" TargetType="{x:Type TextBox}">
  <Style.Triggers>
    <Trigger Property="Validation.HasError" Value="true">
      <Setter Property="ToolTip"
        Value="{Binding RelativeSource={x:Static RelativeSource.Self},
                        Path=(Validation.Errors)[0].ErrorContent}"/>
    </Trigger>
  </Style.Triggers>
</Style>


Pour obtenir l'exemple complet, consultez Validation de liaison, exemple.

Notez que si vous ne fournissez pas un ErrorTemplate personnalisé, le modèle d'erreur par défaut apparaît pour fournir la rétroaction visuelle à l'utilisateur lorsqu'il existe une erreur de validation. Consultez la rubrique « Validation des données » dans Vue d'ensemble de la liaison de données pour plus d'informations. En outre, WPF fournit une règle de validation intégrée qui intercepte les exceptions levées pendant la mise à jour de la propriété de source de liaison. Pour plus d'informations, consultez ExceptionValidationRule.

.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Ajouts de la communauté

AJOUTER
Afficher:
© 2015 Microsoft