EmailValidationBehavior

Das EmailValidationBehavior ist ein Behavior, mit dem Benutzer feststellen können, ob eine Texteingabe eine gültige E-Mail-Adresse ist. Beispielsweise kann ein Entry Steuerelement unterschiedlich formatiert werden, je nachdem, ob eine gültige oder eine ungültige E-Mail-Adresse angegeben wird. Die Überprüfung erfolgt über einen regulären Ausdruck, der verwendet wird, um zu überprüfen, ob es sich bei der Texteingabe um eine gültige E-Mail-Adresse handelt.

Wenn es an ein InputView (z. B. Entry, Editor usw.) angefügt wird, ändert EmailValidationBehavior die Standardtastatur, Keyboard.Default, zu Keyboard.Email. Wenn für InputView ein von der Standardeinstellung abweichender Keyboard angegeben wurde, ändert EmailValidationBehavior den Keyboard nicht.

Wenn die Verbindung zu einem InputView getrennt wird, ändert EmailValidationBehaviorKeyboard.Email wieder in Keyboard.Default. Wenn für den InputView ein anderer Keyboard als Keyboard.Email angegeben wurde, ändert EmailValidationBehavior den Keyboard beim Trennen nicht.

Important

.NET MAUI Community Toolkit Behaviors legt den BindingContext eines Verhaltens nicht fest, da Verhalten über Stile freigegeben und auf mehrere Steuerelemente angewendet werden können. Weitere Informationen finden Sie unter .NET MAUI Behaviors

Syntax

Die folgenden Beispiele zeigen, wie Sie das EmailValidationBehavior zu einem Entry hinzufügen und das TextColor abhängig davon ändern, ob der eingegebene Text eine gültige E-Mail-Adresse ist.

XAML

Einbinden des XAML-Namespace

Um das Toolkit in XAML verwenden zu können, muss der folgende xmlns-Abschnitt zu Ihrer Seite oder Ansicht hinzugefügt werden:

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

Daher das Folgende:

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

Würde geändert werden, um das xmlns wie folgt einzubinden:

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

Verwenden von EmailValidationBehavior

Die EmailValidationBehavior kann wie folgt in XAML verwendet werden:

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

Die EmailValidationBehavior kann wie folgt in C# verwendet werden:

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

C#-Markup

Unser CommunityToolkit.Maui.Markup Paket bietet eine viel präzisere Möglichkeit, dies Behavior in C# zu verwenden.

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

Der folgende Screenshot zeigt das resultierende EmailValidationBehavior unter Android: Screenshot eines EmailValidationBehavior auf Android

Eigenschaften

Eigentum Typ Beschreibung
DecorationFlags TextDecorationFlags Stellt einen aufgezählten Wert bereit, der verwendet werden soll, um festzulegen, wie Leerzeichen behandelt werden.
MaximumLength int Die maximale Länge des zulässigen Werts.
MinimumLength int Die Mindestlänge des zulässigen Werts.
RegexOptions RegexOptions Stellt aufgezählte Werte bereit, die zum Festlegen von Optionen für reguläre Ausdrücke verwendet werden sollen.
RegexPattern string Das Muster für reguläre Ausdrücke, mit dem der Wert übereinstimmen muss, bevor er zulässig ist.

ValidationBehavior-Eigenschaften

Die folgenden Eigenschaften werden in der Basisklasse public abstract class ValidationBehaviorimplementiert:

Eigentum Typ Beschreibung
Flags ValidationFlags Stellt einen Aufzählungswert bereit, der angibt, wie die Überprüfung behandelt wird.
ForceValidateCommand ICommand Ermöglicht es dem Benutzer, ein benutzerdefiniertes ICommand bereitzustellen, das die Validierung erzwingt.
InvalidStyle Style Das Style, das auf das Element angewendet wird, wenn die Validierung fehlschlägt.
IsNotValid bool Gibt an, ob der aktuelle Wert als ungültig betrachtet wird.
IsRunning bool Gibt an, ob die Validierung derzeit ausgeführt wird (das Warten auf einen asynchronen Aufruf abgeschlossen ist).
IsValid bool Gibt an, ob der aktuelle Wert als gültig betrachtet wird.
ValidStyle Style Der Style, der auf das Element angewendet wird, wenn die Validierung erfolgreich ist.
Value object Der zu überprüfende Wert.
ValuePropertyName string Ermöglicht es dem Benutzer, die Eigenschaft außer Kraft zu setzen, die als Wert zum Überprüfen verwendet wird.

Methodik

Methode Beschreibung
EmailRegex (statisch) Ein GeneratedRegex, das mit einer Eingabe übereinstimmt, ist eine gültige E-Mail-Adresse.
EmailDomainRegex (statisch) Ein GeneratedRegex zum Abgleich mit der Domäne einer E-Mail-Adresse.

Beispiele

Sie finden ein Beispiel für dieses Verhalten in Aktion in der .NET MAUI Community Toolkit-Beispielanwendung.

API

Sie finden den Quellcode für EmailValidationBehavior im .NET MAUI Community Toolkit GitHub Repository.