Udostępnij za pośrednictwem


TextValidationBehavior

Jest TextValidationBehavior to element Behavior , który umożliwia użytkownikowi zweryfikowanie danego tekstu w zależności od określonych parametrów. Dodając to zachowanie do dowolnej InputView kontrolki, można ją stylować inaczej w zależności od tego, czy podano prawidłową, czy nieprawidłową wartość tekstową. Oferuje ona różne wbudowane kontrole, takie jak sprawdzanie określonej długości lub czy wartość wejściowa jest zgodna z określonym wyrażeniem regularnym.

Ważne

Zachowania zestawu narzędzi .NET MAUI Community Toolkit nie ustawiają BindingContext zachowania, ponieważ zachowania mogą być współużytkowane i stosowane do wielu kontrolek za pomocą stylów. Aby uzyskać więcej informacji, zobacz Zachowania maUI platformy .NET

Składnia

W poniższych przykładach pokazano, jak dodać element TextValidationBehavior do elementu Entry i zmienić TextColor wartość na podstawie tego, czy wprowadzony tekst ma długość od 1 do 10 znaków.

XAML

Dołączanie przestrzeni nazw XAML

Aby można było używać zestawu narzędzi w języku XAML, należy dodać następujące xmlns elementy do strony lub widoku:

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

W związku z tym następujące elementy:

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

Zostanie zmodyfikowana tak, aby zawierała następujące xmlns elementy:

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

Korzystanie z elementu TextValidationBehavior

Można TextValidationBehavior go użyć w następujący sposób w języku 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#

Można TextValidationBehavior go użyć w następujący sposób w języku 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;
    }
}

Znaczniki języka C#

Nasz CommunityToolkit.Maui.Markup pakiet zapewnia znacznie bardziej zwięzły sposób korzystania z niego Behavior w języku 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
            });
    }
}

Poniższy zrzut ekranu przedstawia wynikowy element TextValidationBehavior w systemie Android: Zrzut ekranu przedstawiający element TextValidationBehavior w systemie Android

Właściwości

Właściwości Type Opis
DecorationFlags TextDecorationFlags Udostępnia wyliczone wartości używane do ustawiania sposobu obsługi białych spacji.
MaximumLength int Maksymalna długość wartości, która będzie dozwolona.
MinimumLength int Minimalna długość wartości, która będzie dozwolona.
RegexOptions RegexOptions Zawiera wyliczone wartości używane do ustawiania opcji wyrażeń regularnych.
RegexPattern string Wzorzec wyrażenia regularnego, który będzie musiał być zgodny z wartością, zanim będzie dozwolony.

Właściwości ValidationBehavior

Następujące właściwości są implementowane w klasie bazowej: public abstract class ValidationBehavior

Właściwość Type Opis
Flags ValidationFlags Zawiera wyliczona wartość określającą sposób obsługi walidacji.
ForceValidateCommand ICommand Umożliwia użytkownikowi udostępnienie niestandardowego ICommand , który obsługuje wymuszanie walidacji.
InvalidStyle Style Element Style , który ma być stosowany do elementu w przypadku niepowodzenia walidacji.
IsNotValid bool Wskazuje, czy bieżąca wartość jest uważana za nieprawidłową.
IsRunning bool Wskazuje, czy walidacja jest teraz w toku (oczekiwanie na zakończenie wywołania asynchronicznego).
IsValid bool Wskazuje, czy bieżąca wartość jest uważana za prawidłową.
ValidStyle Style Element Style , który ma być stosowany do elementu po pomyślnym zakończeniu walidacji.
Value object Wartość do zweryfikowania.
ValuePropertyName string Umożliwia użytkownikowi zastąpienie właściwości, która będzie używana jako wartość do zweryfikowania.

Przykłady

Przykład tego zachowania można znaleźć w przykładzie przykładowym aplikacji zestawu narzędzi .NET MAUI Community Toolkit.

interfejs API

Kod źródłowy można TextValidationBehavior znaleźć w repozytorium GitHub zestawu narzędzi .NET MAUI Community Toolkit.