Sdílet prostřednictvím


MaxLengthReachedBehavior

Jedná MaxLengthReachedBehavior se o akci Behavior , která uživateli umožňuje aktivovat akci, když uživatel dosáhl maximální povolené InputViewdélky . Může aktivovat Command událost nebo událost v závislosti na preferovaném scénáři uživatele. Command Výsledná hodnota i událost bude obsahovat výsledný text InputView.

Kromě toho je možné zavřít klávesnici při dosažení maximální délky prostřednictvím ShouldDismissKeyboardAutomatically vlastnosti, která má výchozí hodnotu false.

Důležité

Chování sady nástrojů .NET MAUI Community Toolkit nenastavuje BindingContext chování, protože chování lze sdílet a použít u více ovládacích prvků prostřednictvím stylů. Další informace najdete v tématu Chování rozhraní .NET MAUI.

Syntaxe

XAML

Zahrnutí oboru názvů XAML

Pokud chcete použít sadu nástrojů v XAML, musíte do stránky nebo zobrazení přidat následující xmlns položky:

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

Proto platí následující:

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

Bylo by změněno tak, aby zahrnovalo xmlns následující:

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

Použití MaxLengthReachedBehavior

V XAML je možné ho MaxLengthReachedBehavior použít následujícím způsobem:

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

V MaxLengthReachedBehavior jazyce C# je možné ho použít následujícím způsobem:


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

Revize jazyka C#

Náš CommunityToolkit.Maui.Markup balíček nabízí mnohem stručnější způsob použití Behavior v jazyce 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));
    }
}

Vlastnosti

Vlastnost Type Popis
Command Icommand Příkaz, který se spustí, když uživatel dosáhl maximální délky. Parametr příkazu bude obsahovat Text .InputView
ShouldDismissKeyboardAutomatically bool Určuje, zda má být klávesnice při dosažení maximální délky automaticky zavřena.

Událost

Událost Popis
MaxLengthReached Událost, která se vyvolá, když uživatel dosáhl maximální délky. Args události budou obsahovat Text .InputView

Příklady

Příklad tohoto chování v akci najdete v ukázkové aplikaci .NET MAUI Community Toolkit.

rozhraní API

Zdrojový kód MaxLengthReachedBehavior najdete v úložišti .NET MAUI Community Toolkit na GitHubu.