Partager via


TextValidationBehavior

Le TextValidationBehavior est un Behavior qui permet à l’utilisateur de valider un texte donné en fonction de paramètres spécifiés. En ajoutant ce comportement à un contrôle InputView, il peut avoir un style différent selon que la valeur de texte fournie et valide ou non valide. Il intègre divers types de vérifications, comme la vérification de la longueur de la valeur d’entrée ou de sa correspondance avec une expression régulière spécifique.

Important

Les comportements du Kit d’outils de la communauté .NET MAUI ne définissent pas le BindingContext d’un comportement, car ces comportements peuvent être partagés et appliqués à plusieurs contrôles par l’intermédiaire de styles. Pour obtenir plus d’informations, voir Comportements MAUI .NET

Syntaxe

Les exemples suivants montrent comment ajouter TextValidationBehavior à une Entry et modifier TextColor selon que le texte entré a une longueur comprise entre 1 et 10 caractères.

XAML

Y compris l’espace de noms XAML

Pour utiliser le kit de ressources dans XAML, le xmlns suivant doit être ajouté à votre page ou à votre affichage :

xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"

Il en résulte ce qui suit :

<ContentPage
    x:Class="CommunityToolkit.Maui.Sample.Pages.MyPage"
    xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">

</ContentPage>

Serait modifié pour inclure le xmlns de la manière suivante :

<ContentPage
    x:Class="CommunityToolkit.Maui.Sample.Pages.MyPage"
    xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit">

</ContentPage>

Utilisation de TextValidationBehavior

Le TextValidationBehavior peut être utilisé de la manière suivante dans XAML :

<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
             x:Class="CommunityToolkit.Maui.Sample.Pages.Behaviors.TextValidationBehaviorPage">

    <ContentPage.Resources>
        <Style x:Key="InvalidEntryStyle" TargetType="Entry">
            <Setter Property="TextColor" Value="Red" />
        </Style>
        <Style x:Key="ValidEntryStyle" TargetType="Entry">
            <Setter Property="TextColor" Value="Green" />
        </Style>
    </ContentPage.Resources>

    <Entry>
        <Entry.Behaviors>
            <toolkit:TextValidationBehavior 
                InvalidStyle="{StaticResource InvalidEntryStyle}"
                ValidStyle="{StaticResource ValidEntryStyle}"
                Flags="ValidateOnValueChanged"
                MinimumLength="1"
                MaximumLength="10" />
        </Entry.Behaviors>
    </Entry>

</ContentPage>

C#

Le TextValidationBehavior peut être utilisé de la manière suivante dans C# :

class TextValidationBehaviorPage : ContentPage
{
    public TextValidationBehaviorPage()
    {
        var entry = new Entry();

        var validStyle = new Style(typeof(Entry));
        validStyle.Setters.Add(new Setter
        {
            Property = Entry.TextColorProperty,
            Value = Colors.Green
        });

        var invalidStyle = new Style(typeof(Entry));
        invalidStyle.Setters.Add(new Setter
        {
            Property = Entry.TextColorProperty,
            Value = Colors.Red
        });

        var textValidationBehavior = new TextValidationBehavior
        {
            InvalidStyle = invalidStyle,
            ValidStyle = validStyle,
            Flags = ValidationFlags.ValidateOnValueChanged,
            MinimumLength = 1,
            MaximumLength = 10
        };

        entry.Behaviors.Add(textValidationBehavior);

        Content = entry;
    }
}

Balisage C#

Notre package CommunityToolkit.Maui.Markup offre un moyen beaucoup plus concis d’utiliser ce Behavior en C#.

using CommunityToolkit.Maui.Markup;

class TextValidationBehaviorPage : ContentPage
{
    public TextValidationBehaviorPage()
    {
        Content = new Entry()
            .Behaviors(new TextValidationBehavior
            {
                InvalidStyle = new Style<Entry>(Entry.TextColorProperty, Colors.Red),
                ValidStyle = new Style<Entry>(Entry.TextColorProperty, Colors.Green),
                Flags = ValidationFlags.ValidateOnValueChanged,
                MinimumLength = 1,
                MaximumLength = 10
            });
    }
}

La capture d’écran suivante montre les résultats de TextValidationBehavior sur Android : Capture d’écran d’un comportement TextValidationBehavior sur Android

Propriétés

Propriété Type Description
DecorationFlags TextDecorationFlags Fournit la valeur énumérée à utiliser pour définir la façon dont les espaces blancs doivent être gérés.
MaximumLength int Longueur maximale de la valeur qui sera autorisée.
MinimumLength int Longueur minimale de la valeur qui sera autorisée.
RegexOptions RegexOptions Fournit les valeurs énumérées à utiliser pour définir les options des expressions régulières.
RegexPattern string Modèle d’expression régulière à laquelle la valeur doit correspondre pour être autorisée.

Propriétés ValidationBehavior

Les propriétés suivantes sont implémentées dans la classe de base, public abstract class ValidationBehavior :

Propriété Type Description
Flags ValidationFlags Fournit une valeur énumérée qui spécifie comment gérer la validation.
ForceValidateCommand ICommand Permet à l’utilisateur de fournir une commande ICommand personnalisée qui gère le forçage de validation.
InvalidStyle Style Style à appliquer à l’élément en cas d’échec de la validation.
IsNotValid bool Indique si la valeur actuelle est considérée ou non comme non valide.
IsRunning bool Indique si la validation est en cours (en attente de la fin d’un appel asynchrone) ou non.
IsValid bool Indique si la valeur actuelle est considérée ou non comme valide.
ValidStyle Style Style à appliquer à l’élément en cas de réussite de la validation.
Value object Valeur à valider.
ValuePropertyName string Permet à l’utilisateur de remplacer la propriété qui sera utilisée comme valeur à valider.

Exemples

Vous trouverez un exemple de ce comportement en action dans l’Exemple d’application du kit de ressources de la communauté .NET MAUI.

API

Vous pouvez trouver le code source deTextValidationBehavior sur le référentiel du kit de ressources de la communauté .NET MAUI sur GitHub.