Condividi tramite


CharactersValidationBehavior

CharactersValidationBehavior è un oggetto Behavior che consente all'utente di convalidare l'input di testo a seconda dei parametri specificati. Ad esempio, è Entry possibile applicare uno stile diverso a un controllo a seconda che venga specificato un valore di testo valido o non valido. Questo comportamento include controlli predefiniti, ad esempio il controllo di un determinato numero di cifre o caratteri alfanumerici.

Importante

I comportamenti di .NET MAUI Community Toolkit non impostano l'oggetto BindingContext di un comportamento, perché i comportamenti possono essere condivisi e applicati a più controlli tramite stili. Per altre informazioni, vedere Comportamenti MAUI di .NET

Sintassi

Negli esempi seguenti viene illustrato come aggiungere a e Entry modificare l'oggetto TextColorCharactersValidationBehavior in base al fatto che il testo immesso contenga solo numeri e abbia almeno 2 numeri.

XAML

Inclusione dello spazio dei nomi XAML

Per usare il toolkit in XAML, è necessario aggiungere le informazioni seguenti xmlns nella pagina o nella visualizzazione:

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

Di conseguenza:

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

Verrà modificato in modo da includere l'oggetto xmlns come indicato di seguito:

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

Uso di CharactersValidationBehavior

Può CharactersValidationBehavior essere usato come segue in 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.CharactersValidationBehaviorPage">

    <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:CharactersValidationBehavior 
                InvalidStyle="{StaticResource InvalidEntryStyle}"
                ValidStyle="{StaticResource ValidEntryStyle}"
                Flags="ValidateOnValueChanged"
                CharacterType="Digit"
                MinimumCharacterTypeCount="3" />
        </Entry.Behaviors>
    </Entry>

</ContentPage>

C#

Può CharactersValidationBehavior essere usato come indicato di seguito in C#:

class CharactersValidationBehaviorPage : ContentPage
{
    public CharactersValidationBehaviorPage()
    {
        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 charactersValidationBehavior = new CharactersValidationBehavior
        {
            InvalidStyle = invalidStyle,
            ValidStyle = validStyle,
            Flags = ValidationFlags.ValidateOnValueChanged,
            CharacterType = CharacterType.Digit,
            MinimumCharacterTypeCount = 3
        };

        entry.Behaviors.Add(charactersValidationBehavior);

        Content = entry;
    }
}

C# Markup

Il CommunityToolkit.Maui.Markup pacchetto offre un modo molto più conciso per usarlo Behavior in C#.

using CommunityToolkit.Maui.Markup;

class CharactersValidationBehaviorPage : ContentPage
{
    public CharactersValidationBehaviorPage()
    {
        Content = new Entry()
            .Behaviors(new CharactersValidationBehavior
            {
                InvalidStyle = new Style<Entry>(Entry.TextColorProperty, Colors.Red),
                ValidStyle = new Style<Entry>(Entry.TextColorProperty, Colors.Green),
                Flags = ValidationFlags.ValidateOnValueChanged,
                CharacterType = CharacterType.Digit,
                MinimumCharacterTypeCount = 3
            });
    }
}

Lo screenshot seguente mostra i caratteri risultantiValidationBehavior in Android: Screenshot di un charactersValidationBehavior in Android

Proprietà

Proprietà Type Descrizione
CharacterType CharacterType Fornisce un valore enumerato da utilizzare per impostare la modalità di gestione dei confronti.
DecorationFlags TextDecorationFlags Fornisce un valore enumerato da utilizzare per impostare la modalità di gestione degli spazi vuoti.
MaximumCharacterTypeCount int Numero massimo di CharacterType caratteri necessari.
MaximumLength int Lunghezza massima del valore che sarà consentito.
MinimumCharacterTypeCount int Numero minimo di CharacterType caratteri necessari.
MinimumLength int Lunghezza minima del valore che sarà consentito.
RegexOptions RegexOptions Fornisce valori enumerati da usare per impostare le opzioni delle espressioni regolari.
RegexPattern string Modello di espressione regolare che dovrà corrispondere al valore prima che venga consentito.

Proprietà ValidationBehavior

Le proprietà seguenti vengono implementate nella classe base : public abstract class ValidationBehavior

Proprietà Type Descrizione
Flags ValidationFlags Fornisce un valore enumerato che specifica come gestire la convalida.
ForceValidateCommand ICommand Consente all'utente di fornire un oggetto personalizzato ICommand che gestisce la convalida forzata.
InvalidStyle Style Oggetto Style da applicare all'elemento in caso di esito negativo della convalida.
IsNotValid bool Indica se il valore corrente è considerato non valido.
IsRunning bool Indica se la convalida è in corso ora (in attesa del completamento di una chiamata asincrona).
IsValid bool Indica se il valore corrente è considerato valido o meno.
ValidStyle Style Oggetto Style da applicare all'elemento quando la convalida ha esito positivo.
Value object Valore da convalidare.
ValuePropertyName string Consente all'utente di eseguire l'override della proprietà che verrà utilizzata come valore da convalidare.

Esempi

È possibile trovare un esempio di questo comportamento in azione nell'applicazione di esempio .NET MAUI Community Toolkit.

API

È possibile trovare il codice sorgente per CharactersValidationBehavior over nel repository GitHub di .NET MAUI Community Toolkit.