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:
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.
.NET MAUI Community Toolkit