CompareConverter
Le CompareConverter
est un convertisseur unidirectionnel qui prend une valeur entrante implémentant IComparable
, la compare à une valeur spécifiée et retourne le résultat de comparaison. Le résultat est défini par défaut sur un bool
si aucun objet n’est spécifié par le biais des propriétés TrueObject
et/ou FalseObject
. Si des valeurs sont attribuées aux propriétés TrueObject
et/ou FalseObject
, CompareConverter retourne l’objet respectif attribué.
Remarque
Notez qu’il faut soit que TrueObject
et FalseObject
aient tous deux une valeur définie, soit qu’aucun n’en ait.
La méthode ConvertBack
n'est pas prise en charge.
Propriétés BaseConverter
Les propriétés suivantes sont implémentées dans la classe de base public abstract class BaseConverter
:
Propriété | Description |
---|---|
DefaultConvertReturnValue |
Valeur par défaut à retourner lorsque IValueConverter.Convert(object?, Type, object?, CultureInfo?) lève une Exception . Cette valeur est utilisée lorsque CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters est définie sur true . |
DefaultConvertBackReturnValue |
Valeur par défaut à retourner lorsque IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) lève une Exception . Cette valeur est utilisée lorsque CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters est définie sur true . |
Propriétés ICommunityToolkitValueConverter
Les propriétés suivantes sont implémentées dans le public interface ICommunityToolkitValueConverter
:
Propriété | Type | Description |
---|---|---|
DefaultConvertReturnValue |
object? |
Valeur par défaut à retourner lorsque IValueConverter.Convert(object?, Type, object?, CultureInfo?) lève une Exception . Cette valeur est utilisée lorsque CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters est définie sur true . |
DefaultConvertBackReturnValue |
object? |
Valeur par défaut à retourner lorsque IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) lève une Exception . Cette valeur est utilisée lorsque CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters est définie sur true . |
Syntaxe
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 du CompareConverter
Le CompareConverter
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.Converters.CompareConverterPage">
<ContentPage.Resources>
<ResourceDictionary>
<toolkit:CompareConverter
x:Key="CompareConverter"
ComparisonOperator="Smaller"
ComparingValue="50"
TrueObject="LightGreen"
FalseObject="PaleVioletRed" />
</ResourceDictionary>
</ContentPage.Resources>
<Label
Text="The background of this label will be green if the value entered is less than 50, and red otherwise."
BackgroundColor="{Binding MyValue, Converter={StaticResource CompareConverter}" />
</ContentPage>
C#
Le CompareConverter
peut être utilisé de la manière suivante dans C# :
class CompareConverterPage : ContentPage
{
public CompareConverterPage()
{
var label = new Label
{
Text = "The background of this label will be green if the value entered is less than 50, and red otherwise."
};
label.SetBinding(
Label.BackgroundColorProperty,
new Binding(
nameof(ViewModel.MyValue),
converter: new CompareConverter
{
ComparisonOperator = OperatorType.Smaller,
ComparingValue = 50,
TrueObject = Colors.LightGreen,
FalseObject = Colors.PaleVioletRed
}));
Content = label;
}
}
Balisage C#
Notre package CommunityToolkit.Maui.Markup
offre un moyen beaucoup plus concis d’utiliser ce convertisseur dans C#.
using CommunityToolkit.Maui.Markup;
class CompareConverterPage : ContentPage
{
public CompareConverterPage()
{
Content = new Label()
.Text("The background of this label will be green if the value entered is less than 50, and red otherwise.")
.Bind(
Label.BackgroundColorProperty,
static (ViewModel vm) => vm.MyValue,
converter: new CompareConverter
{
ComparisonOperator = OperatorType.Smaller,
ComparingValue = 50,
TrueObject = Colors.LightGreen,
FalseObject = Colors.PaleVioletRed
});
}
}
Propriétés
Propriété | Type | Description |
---|---|---|
ComparisonOperator | OperatorType |
Type de casse à appliquer à la valeur string . |
ComparingValue | IComparable |
Valeur avec laquelle effectuer la comparaison. |
FalseObject | object |
Résultat à retourner si la comparaison entraîne une comparaison false . |
TrueObject | object |
Résultat à retourner si la comparaison entraîne une comparaison true . |
TextCaseType
L’énumération OperatorType
définit les membres suivants :
NotEqual
Smaller
SmallerOrEqual
Equal
Greater
GreaterOrEqual
Exemples
Vous trouverez un exemple d’utilisation de ce convertisseur dans l’Exemple d’application du kit d’outils de la communauté .NET MAUI.
API
Vous pouvez trouver le code source deCompareConverter
sur le référentiel du kit de ressources de la communauté .NET MAUI sur GitHub.
.NET MAUI Community Toolkit