CharactersValidationBehavior

Das CharactersValidationBehavior ist ein Behavior, das es dem Benutzer ermöglicht, Texteingaben basierend auf den angegebenen Parametern zu validieren. Beispielsweise kann ein Entry Steuerelement unterschiedlich formatiert werden, je nachdem, ob ein gültiger oder ungültiger Textwert angegeben wird. Dieses Verhalten enthält integrierte Überprüfungen, z. B. die Überprüfung auf eine bestimmte Anzahl von Ziffern oder alphanumerischen Zeichen.

Important

Die .NET MAUI Community Toolkit Behaviors legen die BindingContext eines Verhaltens nicht fest, da Verhaltensweisen ü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 CharactersValidationBehavior zu einem Entry hinzufügen und das TextColor je nachdem ändern, ob der eingegebene Text nur Zahlen enthält und mindestens 2 Zahlen umfasst.

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 CharactersValidationBehavior

Dies CharactersValidationBehavior 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.CharactersValidationBehaviorPage">

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

</ContentPage>

C#

Dies CharactersValidationBehavior kann wie folgt in C# verwendet werden:

class CharactersValidationBehaviorPage : ContentPage
{
    public CharactersValidationBehaviorPage()
    {
        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 charactersValidationBehavior = new CharactersValidationBehavior
        {
            InvalidStyle = invalidStyle,
            ValidStyle = validStyle,
            Flags = ValidationFlags.ValidateOnValueChanged,
            CharacterType = CharacterType.Digit,
            MinimumCharacterTypeCount = 3
        };

        entry.Behaviors.Add(charactersValidationBehavior);

        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 CharactersValidationBehaviorPage : ContentPage
{
    public CharactersValidationBehaviorPage()
    {
        Content = new Entry()
            .Behaviors(new CharactersValidationBehavior
            {
                InvalidStyle = new Style<Entry>(Entry.TextColorProperty, Colors.Red),
                ValidStyle = new Style<Entry>(Entry.TextColorProperty, Colors.Green),
                Flags = ValidationFlags.ValidateOnValueChanged,
                CharacterType = CharacterType.Digit,
                MinimumCharacterTypeCount = 3
            });
    }
}

Der folgende Screenshot zeigt das resultierende CharactersValidationBehavior auf Android: Screenshot eines CharactersValidationBehavior auf Android

Eigenschaften

Eigentum Typ Beschreibung
CharacterType CharacterType Stellt einen aufgezählten Wert bereit, mit dem festgelegt wird, wie Vergleiche behandelt werden.
DecorationFlags TextDecorationFlags Stellt einen aufgezählten Wert bereit, der verwendet werden soll, um festzulegen, wie Leerzeichen behandelt werden.
MaximumCharacterTypeCount int Die maximal erforderliche Anzahl von CharacterType Zeichen.
MaximumLength int Die maximale Länge des zulässigen Werts.
MinimumCharacterTypeCount int Die Mindestanzahl der CharacterType erforderlichen Zeichen.
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 implementiert: public abstract class ValidationBehavior

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.

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 CharactersValidationBehavior im .NET MAUI Community Toolkit GitHub Repository.