Sdílet prostřednictvím


EmailValidationBehavior

Jedná se EmailValidationBehavior o možnost Behavior , která uživatelům umožňuje určit, zda je textové zadání platnou e-mailovou adresou. Ovládací prvek může být například stylován odlišně v závislosti na tom, Entry jestli je zadanou platnou nebo neplatnou e-mailovou adresu. Ověření se provádí prostřednictvím regulárního výrazu, který slouží k ověření, zda je textové zadání platnou e-mailovou adresou.

Když je připojená k objektu InputView (např. Entry, Editoratd.), EmailValidationBehavior změní se výchozí klávesová zkratka , Keyboard.Defaultna Keyboard.Email. Pokud byla pro InputViewdanou hodnotu zadána jiná než výchozí Keyboard hodnota , EmailValidationBehavior nezmění se Keyboard.

Po odpojení od objektu InputViewse EmailValidationBehavior změní Keyboard.Email zpět na Keyboard.Default. Keyboard Pokud je pro parametr , EmailValidationBehaviorjiný, než Keyboard.Email je zadán InputView, při odpojení se nezměníKeyboard.

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

Následující příklady ukazují, jak přidat EmailValidationBehavior do Entry a změnit TextColor na základě toho, jestli je zadaný text platnou e-mailovou adresou.

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

V XAML je možné ho EmailValidationBehavior 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.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#

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

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

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

Následující snímek obrazovky ukazuje výsledný e-mailValidationBehavior v Androidu: Snímek obrazovky e-mailu EmailValidationBehavior v Androidu

Vlastnosti

Vlastnost Type Popis
DecorationFlags TextDecorationFlags Poskytuje výčtové hodnoty, které se použijí k nastavení způsobu zpracování prázdných znaků.
MaximumLength int Maximální délka hodnoty, která bude povolena.
MinimumLength int Minimální délka hodnoty, která bude povolena.
RegexOptions RegexOptions Poskytuje výčtové hodnoty, které se mají použít k nastavení možností regulárního výrazu.
RegexPattern string Vzor regulárního výrazu, se kterým se hodnota bude muset shodovat, než bude povolená.

Vlastnosti ValidationBehavior

V základní třídě jsou implementovány následující vlastnosti: public abstract class ValidationBehavior

Vlastnost Type Popis
Flags ValidationFlags Poskytuje výčtovou hodnotu, která určuje, jak zpracovat ověření.
ForceValidateCommand ICommand Umožňuje uživateli zadat vlastní ICommand popisovač ověřování.
InvalidStyle Style Hodnota Style , která se má použít u elementu při selhání ověření.
IsNotValid bool Určuje, zda je aktuální hodnota považována za neplatnou.
IsRunning bool Označuje, jestli právě probíhá ověření (čeká se na dokončení asynchronního volání).
IsValid bool Určuje, zda je aktuální hodnota považována za platnou.
ValidStyle Style To Style platí pro prvek, pokud je ověření úspěšné.
Value object Hodnota, která má být ověřena
ValuePropertyName string Umožňuje uživateli přepsat vlastnost, která se použije jako hodnota k ověření.

Metody

metoda Popis
EmailRegex (statická) Hodnota GeneratedRegex odpovídající vstupu je platná e-mailová adresa.
EmailDomainRegex (statická) A, GeneratedRegex která odpovídá doméně e-mailové adresy.

Příklady

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

rozhraní API

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