NumericValidationBehavior
Le NumericValidationBehavior
est un Behavior
qui permet à l’utilisateur de déterminer si une entrée de texte est une valeur numérique valide. Par exemple, un contrôle Entry
peut avoir un style différent selon que l’entrée numérique valide ou non valide est fournie.
Important
Les comportements du kit d’outils de la communauté .NET MAUI ne définissent pas le BindingContext
d’un comportement, car ceux-ci peuvent être partagés et appliqués à plusieurs contrôles par l’intermédiaire de styles. Pour plus d’informations, consultez Comportements MAUI .NET.
Syntaxe
Les exemples suivants présentent comment ajouter le NumericValidationBehavior
à une Entry
et modifier la propriété TextColor
lorsque le nombre entré est considéré comme non valide (non compris entre 1 et 100).
XAML
Y compris l’espace de noms XAML
Pour utiliser le kit de ressources dans XAML, le xmlns
suivant doit être ajouté à votre page ou à votre affichage :
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
Il en résulte ce qui suit :
<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>
Serait modifié pour inclure le xmlns
de la manière suivante :
<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>
Utilisation de NumericValidationBehavior
Le NumericValidationBehavior
peut être utilisé de la manière suivante dans XAML :
<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.NumericValidationBehaviorPage">
<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 Keyboard="Numeric">
<Entry.Behaviors>
<toolkit:NumericValidationBehavior
InvalidStyle="{StaticResource InvalidEntryStyle}"
ValidStyle="{StaticResource ValidEntryStyle}"
Flags="ValidateOnValueChanged"
MinimumValue="1.0"
MaximumValue="100.0"
MaximumDecimalPlaces="2" />
</Entry.Behaviors>
</Entry>
</ContentPage>
C#
Le NumericValidationBehavior
peut être utilisé de la manière suivante dans C# :
class NumericValidationBehaviorPage : ContentPage
{
public NumericValidationBehaviorPage()
{
var entry = new Entry
{
Keyboard = Keyboard.Numeric
};
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 numericValidationBehavior = new NumericValidationBehavior
{
InvalidStyle = invalidStyle,
ValidStyle = validStyle,
Flags = ValidationFlags.ValidateOnValueChanged,
MinimumValue = 1.0,
MaximumValue = 100.0,
MaximumDecimalPlaces = 2
};
entry.Behaviors.Add(numericValidationBehavior);
Content = entry;
}
}
Balisage C#
Notre package CommunityToolkit.Maui.Markup
permet d’utiliser ce Behavior
de manière beaucoup plus concise en C#.
using CommunityToolkit.Maui.Markup;
class NumericValidationBehaviorPage : ContentPage
{
public NumericValidationBehaviorPage()
{
Content = new Entry
{
Keyboard = Keyboard.Numeric
}.Behaviors(new NumericValidationBehavior
{
InvalidStyle = new Style<Entry>(Entry.TextColorProperty, Colors.Red),
ValidStyle = new Style<Entry>(Entry.TextColorProperty, Colors.Green),
Flags = ValidationFlags.ValidateOnValueChanged,
MinimumValue = 1.0,
MaximumValue = 100.0,
MaximumDecimalPlaces = 2
});
}
}
Propriétés
Propriété | Type | Description |
---|---|---|
MaximumDecimalPlaces |
double |
Le nombre maximal de décimales autorisé. |
MinimumDecimalPlaces |
double |
Le nombre minimal de décimales autorisé. |
MaximumValue |
double |
La longueur maximale de valeur autorisée. |
MinimumValue |
double |
La longueur minimale de valeur autorisée. |
Propriétés ValidationBehavior
Les propriétés suivantes sont implémentées dans la classe de base, public abstract class ValidationBehavior
:
Propriété | Type | Description |
---|---|---|
Flags |
ValidationFlags |
Fournit une valeur énumérée qui spécifie comment gérer la validation. |
ForceValidateCommand |
ICommand |
Permet à l’utilisateur de fournir une commande ICommand personnalisée qui gère le forçage de validation. |
InvalidStyle |
Style |
Style à appliquer à l’élément en cas d’échec de la validation. |
IsNotValid |
bool |
Indique si la valeur actuelle est considérée ou non comme non valide. |
IsRunning |
bool |
Indique si la validation est en cours (en attente de la fin d’un appel asynchrone) ou non. |
IsValid |
bool |
Indique si la valeur actuelle est considérée ou non comme valide. |
ValidStyle |
Style |
Style à appliquer à l’élément en cas de réussite de la validation. |
Value |
object |
Valeur à valider. |
ValuePropertyName |
string |
Permet à l’utilisateur de remplacer la propriété qui sera utilisée comme valeur à valider. |
Exemples
Vous trouverez un exemple de ce comportement en action dans l’Exemple d’application du kit de ressources de la communauté .NET MAUI.
API
Vous pouvez trouver le code source deNumericValidationBehavior
sur le référentiel du kit de ressources de la communauté .NET MAUI sur GitHub.
.NET MAUI Community Toolkit