Partager via


MaxLengthReachedBehavior

Le MaxLengthReachedBehavior est un Behavior qui permet à l’utilisateur de déclencher une action quand un utilisateur a atteint la longueur maximale autorisée sur un InputView. Il peut déclencher un Command ou un événement en fonction du scénario préféré de l’utilisateur. Le Command et l’événement incluront le texte résultant du InputView.

En outre, il est possible d’ignorer le clavier lorsque la longueur maximale est atteinte via la propriété ShouldDismissKeyboardAutomatically qui est par défaut false.

Important

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

Syntaxe

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>

À l’aide de MaxLengthReachedBehavior

Le MaxLengthReachedBehavior 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.MaxLengthReachedBehaviorPage"
    x:Name="Page">

    <Entry Placeholder="Start typing until MaxLength is reached..."
           MaxLength="100"
           x:Name="MaxLengthEntry">
        <Entry.Behaviors>
            <toolkit:MaxLengthReachedBehavior
                BindingContext="{Binding Path=BindingContext, Source={x:Reference MaxLengthEntry}, x:DataType=Entry}"
                Command="{Binding Source={x:Reference Page}, Path=BindingContext.MaxLengthReachedCommand, x:DataType=ContentPage}" />
        </Entry.Behaviors>
    </Entry>

</ContentPage>

C#

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


class MaxLengthReachedBehaviorPage : ContentPage
{
    public MaxLengthReachedBehaviorPage()
    {
        var entry = new Entry
        {
            Placeholder = "Start typing until MaxLength is reached...",
            MaxLength = 100
        };

        var behavior = new MaxLengthReachedBehavior();
        behavior.SetBinding(
            MaxLengthReachedBehavior.CommandProperty,
            static (MaxLengthReachedBehaviorViewModel vm) => vm.MaxLengthReachedCommand,
            source: this.BindingContext);

        entry.Behaviors.Add(behavior);

        Content = entry;
    }
}

Balisage C#

Notre package CommunityToolkit.Maui.Markup permet d’utiliser ce Behavior de manière beaucoup plus concise en C#.

using CommunityToolkit.Maui.Markup;

class MaxLengthReachedBehaviorPage : ContentPage
{
    public MaxLengthReachedBehaviorPage()
    {
        Content = new Entry
        {
            Placeholder = "Start typing until MaxLength is reached...",
            MaxLength = 100
        }.Behaviors(
            new MaxLengthReachedBehavior()
            .Bind(MaxLengthReachedBehavior.CommandProperty,
                getter: static (ViewModel vm) => vm.MaxLengthReachedCommand,
                source: this.BindingContext));
    }
}

Propriétés

Propriété Type Description
Command ICommand Commande exécutée lorsque l’utilisateur a atteint la longueur maximale. Le paramètre de la commande contient le Text du InputView.
ShouldDismissKeyboardAutomatically bool Indique si le clavier doit être ignoré automatiquement lorsque la longueur maximale est atteinte.

Événements

Événement Description
MaxLengthReached Événement déclenché lorsque l’utilisateur a atteint la longueur maximale. Les arguments d’événement contiennent le Text du InputView.

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 deMaxLengthReachedBehavior sur le référentiel du kit de ressources de la communauté .NET MAUI sur GitHub.