Freigeben über


TextValidationBehavior

TextValidationBehavior ist ein Behavior, das es Benutzer*innen ermöglicht, einen bestimmten Text abhängig von den angegebenen Parametern zu überprüfen. Durch Hinzufügen dieses Verhaltens zu einem beliebigen InputView-Steuerelement kann es unterschiedlich formatiert werden, je nachdem, ob ein gültiger oder ein ungültiger Textwert angegeben wird. Es bietet verschiedene integrierte Überprüfungen, z. B. die Überprüfung auf eine bestimmte Länge oder ob der Eingabewert mit einem bestimmten regulären Ausdruck übereinstimmt oder nicht.

Wichtig

.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

In den folgenden Beispielen wird gezeigt, wie Sie das TextValidationBehavior zu einem Entry hinzufügen und die TextColor ändern, je nachdem, ob der eingegebene Text zwischen 1 und 10 Zeichen lang 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"

Der folgende Abschnitt:

<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 dann geändert werden, um xmlns 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 TextValidationBehavior

TextValidationBehavior 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.TextValidationBehaviorPage">

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

</ContentPage>

C#

TextValidationBehavior kann wie folgt in C# verwendet werden:

class TextValidationBehaviorPage : ContentPage
{
    public TextValidationBehaviorPage()
    {
        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 textValidationBehavior = new TextValidationBehavior
        {
            InvalidStyle = invalidStyle,
            ValidStyle = validStyle,
            Flags = ValidationFlags.ValidateOnValueChanged,
            MinimumLength = 1,
            MaximumLength = 10
        };

        entry.Behaviors.Add(textValidationBehavior);

        Content = entry;
    }
}

C#-Markup

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

using CommunityToolkit.Maui.Markup;

class TextValidationBehaviorPage : ContentPage
{
    public TextValidationBehaviorPage()
    {
        Content = new Entry()
            .Behaviors(new TextValidationBehavior
            {
                InvalidStyle = new Style<Entry>(Entry.TextColorProperty, Colors.Red),
                ValidStyle = new Style<Entry>(Entry.TextColorProperty, Colors.Green),
                Flags = ValidationFlags.ValidateOnValueChanged,
                MinimumLength = 1,
                MaximumLength = 10
            });
    }
}

Im folgenden Screenshot ist das resultierende TextValidationBehavior unter Android dargestellt: Screenshot: TextValidationBehavior unter Android

Eigenschaften

Eigenschaft Typ Beschreibung
DecorationFlags TextDecorationFlags Stellt einen Aufzählungswert bereit, der verwendet wird, 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 Enumerationswerte bereit, mit deren Hilfe Optionen für reguläre Ausdrücke festgelegt werden können.
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 ValidationBehavior implementiert:

Eigenschaft Typ Beschreibung
Flags ValidationFlags Stellt einen Enumerationswert bereit, der angibt, wie die Validierung behandelt werden soll.
ForceValidateCommand ICommand Ermöglicht es dem Benutzer, einen benutzerdefinierten ICommand bereitzustellen, der die Validierung erzwingt.
InvalidStyle Style Der Style, der auf das Element angewendet werden soll, wenn die Validierung fehlschlägt.
IsNotValid bool Gibt an, ob der aktuelle Wert als ungültig betrachtet wird oder nicht.
IsRunning bool Gibt an, ob die Validierung jetzt ausgeführt wird oder nicht (Warten auf einen asynchronen Aufruf ist beendet).
IsValid bool Gibt an, ob der aktuelle Wert als gültig betrachtet wird oder nicht.
ValidStyle Style Der Style, der auf das Element angewendet werden soll, 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 für die Validierung verwendet wird.

Beispiele

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

API

Sie finden den Quellcode für TextValidationBehavior über das GitHub-Repository für das .NET MAUI Community Toolkit.