MaxLengthReachedBehavior

Das MaxLengthReachedBehavior ist ein Behavior, das es dem Benutzer ermöglicht, eine Aktion auszulösen, wenn ein Benutzer die auf einem InputView zulässige maximale Länge erreicht hat. Je nach bevorzugtem Szenario des Benutzers kann es entweder ein Command Oder ein Ereignis auslösen. Sowohl das Command als auch das Ereignis enthalten den resultierenden Text des InputView.

Darüber hinaus ist es möglich, die Tastatur auszublenden, sobald die maximale Länge erreicht ist, und zwar über die Eigenschaft ShouldDismissKeyboardAutomatically, deren Standardwert false ist.

Important

Die .NET MAUI Community Toolkit Behaviors legen die BindingContext eines Verhaltens nicht fest, da Verhaltensweisen über Stile freigegeben und auf mehrere Steuerelemente angewendet werden können. Weitere Informationen finden Sie unter .NET MAUI Behaviors

Syntax

XAML

Einbinden des XAML-Namespace

Um das Toolkit in XAML verwenden zu können, muss der folgende xmlns-Abschnitt zu Ihrer Seite oder Ansicht hinzugefügt werden:

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

Daher das Folgende:

<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>

Würde geändert werden, um das xmlns wie folgt einzubinden:

<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>

Verwendung von MaxLengthReachedBehavior

Dies MaxLengthReachedBehavior kann wie folgt in XAML verwendet werden:

<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#

Dies MaxLengthReachedBehavior kann wie folgt in C# verwendet werden:


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;
    }
}

C#-Markup

Unser CommunityToolkit.Maui.Markup Paket bietet eine viel präzisere Möglichkeit, dies Behavior in C# zu verwenden.

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));
    }
}

Eigenschaften

Eigentum Typ Beschreibung
Command ICommand Der Befehl, der ausgeführt wird, wenn der Benutzer die maximale Länge erreicht hat. Der Parameter des Befehls enthält die Text des InputView.
ShouldDismissKeyboardAutomatically bool Gibt an, ob die Tastatur automatisch ausgeblendet werden soll, wenn die maximale Länge erreicht ist.

Events

Event Beschreibung
MaxLengthReached Das Ereignis, das ausgelöst wird, wenn der Benutzer die maximale Länge erreicht hat. Die Ereignisargumente enthalten die Text der InputView.

Beispiele

Sie finden ein Beispiel für dieses Verhalten in Aktion in der .NET MAUI Community Toolkit-Beispielanwendung.

API

Sie finden den Quellcode für MaxLengthReachedBehavior im .NET MAUI Community Toolkit GitHub Repository.