Udostępnij za pośrednictwem


EmailValidationBehavior

Jest EmailValidationBehavior to element Behavior , który umożliwia użytkownikom określenie, czy wprowadzanie tekstu jest prawidłowym adresem e-mail. Na przykład kontrolka Entry może być stylizowany inaczej w zależności od tego, czy podano prawidłowy, czy nieprawidłowy adres e-mail. Walidacja jest osiągana za pomocą wyrażenia regularnego, które służy do sprawdzania, czy wprowadzanie tekstu jest prawidłowym adresem e-mail.

Po dołączeniu do elementu InputView (np. Entry, Editoritp.) EmailValidationBehavior zmieni domyślną klawiaturę, Keyboard.Defaultna Keyboard.Email. Jeśli określono wartość inną niż domyślna Keyboard dla InputViewelementu , EmailValidationBehavior nie zmieni wartości Keyboard.

W przypadku odłączenia od elementu InputViewelement zmieni się Keyboard.Email z powrotem na Keyboard.DefaultEmailValidationBehavior . Jeśli parametr inny Keyboard niż Keyboard.Email został określony dla InputViewelementu , EmailValidationBehaviornie zmieni Keyboard wartości podczas odłączania.

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 EmailValidationBehavior do elementu Entry i zmienić TextColor wartość na podstawie tego, czy wprowadzony tekst jest prawidłowym adresem e-mail.

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 EmailValidationBehavior

Można EmailValidationBehavior 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.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#

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

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

Poniższy zrzut ekranu przedstawia wynikowy element EmailValidationBehavior w systemie Android: Zrzut ekranu przedstawiający element EmailValidationBehavior 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.

Metody

Metoda opis
EmailRegex (statyczny) Element do GeneratedRegex dopasowania danych wejściowych jest prawidłowym adresem e-mail.
EmailDomainRegex (statyczny) A GeneratedRegex , aby dopasować domenę adresu e-mail.

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 EmailValidationBehavior znaleźć w repozytorium GitHub zestawu narzędzi .NET MAUI Community Toolkit.