EmailValidationBehavior

EmailValidationBehavior è un oggetto Behavior che consente agli utenti di determinare se l'input di testo è un indirizzo di posta elettronica valido. Ad esempio, è Entry possibile applicare uno stile diverso a un controllo a seconda che venga specificato un indirizzo di posta elettronica valido o non valido. La convalida viene eseguita tramite un'espressione regolare utilizzata per verificare se l'input di testo è un indirizzo di posta elettronica valido.

Quando è associato a un oggetto InputView (ad esempio Entry, Editor, ecc.), EmailValidationBehavior cambierà la Tastiera predefinita, Keyboard.Default, in Keyboard.Email. Se per il InputView è stato specificato un Keyboard non predefinito, EmailValidationBehavior non modificherà il Keyboard.

Quando viene scollegato da un InputView, EmailValidationBehavior riporterà Keyboard.Email a Keyboard.Default. Se per InputView è stato specificato un Keyboard diverso da Keyboard.Email, EmailValidationBehavior non cambierà Keyboard durante il distacco.

Importante

I comportamenti di .NET MAUI Community Toolkit non impostano la BindingContext di un comportamento, perché i comportamenti possono essere condivisi e applicati a più controlli tramite stili. Per ulteriori informazioni, fare riferimento a Comportamenti di .NET MAUI

Syntax

Gli esempi seguenti mostrano come aggiungere EmailValidationBehavior a un Entry e modificare TextColor a seconda che il testo immesso sia un indirizzo e-mail valido.

XAML

Inclusione del namespace 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 il 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>

Utilizzo di EmailValidationBehavior

Il EmailValidationBehavior può 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.EmailValidationBehaviorPage">

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

</ContentPage>

C#

Il EmailValidationBehavior può essere usato come indicato di seguito in C#:

class EmailValidationBehaviorPage : ContentPage
{
    public EmailValidationBehaviorPage()
    {
        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 emailValidationBehavior = new EmailValidationBehavior
        {
            InvalidStyle = invalidStyle,
            ValidStyle = validStyle,
            Flags = ValidationFlags.ValidateOnValueChanged
        };

        entry.Behaviors.Add(emailValidationBehavior);

        Content = entry;
    }
}

Linguaggio di markup C#

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

using CommunityToolkit.Maui.Markup;

class EmailValidationBehaviorPage : ContentPage
{
    public EmailValidationBehaviorPage()
    {
        Content = new Entry()
            .Behaviors(new EmailValidationBehavior
            {
                InvalidStyle = new Style<Entry>(Entry.TextColorProperty, Colors.Red),
                ValidStyle = new Style<Entry>(Entry.TextColorProperty, Colors.Green),
                Flags = ValidationFlags.ValidateOnValueChanged
            });
    }
}

La schermata seguente mostra il comportamento EmailValidationBehavior risultante su Android: Schermata di EmailValidationBehavior su Android

Proprietà

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

Proprietà di 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 Il Style da applicare all'elemento se 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.

Methods

metodo Descrizione
EmailRegex (statico) Un GeneratedRegex che corrisponda all'input è un indirizzo email valido.
EmailDomainRegex (statico) Un GeneratedRegex che corrisponde al dominio di un indirizzo email.

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 EmailValidationBehavior nel repository .NET MAUI Community Toolkit GitHub.