Partager via


Convertisseurs .NET MAUI

Les liaisons de données de l’interface utilisateur d’application multiplateforme .NET (.NET MAUI) transfèrent généralement des données d’une propriété source vers une propriété cible, et, dans certains cas, de la propriété cible à la propriété source. Ce transfert est simple lorsque les propriétés source et cible sont du même type, ou lorsqu’un type peut être converti en l’autre par le biais d’une conversion implicite. Lorsque ce n’est pas le cas, une conversion de type doit avoir lieu.

Pour plus d’informations sur les convertisseurs, reportez-vous à la documentation .NET MAUI.

Convertisseurs .NET MAUI Community Toolkit

Le kit de ressources communauté .NET MAUI fournit une collection de convertisseurs prédéfinis et réutilisables pour faciliter la vie des développeurs. Voici les convertisseurs fournis par le kit de ressources :

Converter Description
BoolToObjectConverter BoolToObjectConverter est un convertisseur qui permet aux utilisateurs de convertir une bool liaison de valeur en un objet spécifique.
ByteArrayToImageSourceConverter ByteArrayToImageSourceConverter est un convertisseur qui permet à l’utilisateur de convertir une valeur entrante à partir d’un tableau byte et retourne ensuite un ImageSource.
ColorToBlackOrWhiteConverter Le ColorToBlackOrWhiteConverter est un convertisseur unidirectionnel qui permet aux utilisateurs de convertir un Color entrant en une valeur monochrome de Colors.Black ou Colors.White.
ColorToByteAlphaConverter Il ColorToByteAlphaConverter s’agit d’un convertisseur unidirectionnel qui permet aux utilisateurs de convertir un entrant Color en composant alpha sous forme de valeur comprise entre 0 et 255.
ColorToByteBlueConverter Le ColorToByteBlueConverter est un convertisseur unidirectionnel qui permet aux utilisateurs de convertir une entrée Color en le composant bleu sous forme de valeur comprise entre 0 et 255.
ColorToByteGreenConverter ColorToByteGreenConverter est un convertisseur unidirectionnel qui permet aux utilisateurs de convertir un Color entrant en le composant vert sous forme de valeur comprise entre 0 et 255.
ColorToByteRedConverter Le ColorToByteRedConverter est un convertisseur unidirectionnel qui permet aux utilisateurs de convertir un Color entrant en valeur du composant rouge sous la forme d’une valeur comprise entre 0 et 255.
ColorToCmykStringConverter Le ColorToCmykStringConverter est un convertisseur unidirectionnel qui permet aux utilisateurs de convertir une Color liaison de valeurs en son équivalent CMYK string.
ColorToCmykaStringConverter ColorToCmykaStringConverter est un convertisseur unidirectionnel qui permet aux utilisateurs de convertir une liaison de données de valeur Color en son équivalent CMYKA string.
ColorToColorForTextConverter Le ColorToColorForTextConverter est un convertisseur unidirectionnel qui permet aux utilisateurs de convertir un Color entrant en une valeur monochrome de Colors.Black ou Colors.White en fonction de sa détermination comme étant sombre pour l'œil humain.
ColorToDegreeHueConverter Le ColorToDegreeHueConverter est un convertisseur à sens unique qui permet aux utilisateurs de convertir un Color entrant en composante de teinte sous la forme d'une valeur comprise entre 0 et 360.
ColorToGrayScaleColorConverter Le ColorToGrayScaleColorConverter est un convertisseur unidirectionnel qui permet aux utilisateurs de convertir un Color entrant en un Color en niveaux de gris.
ColorToHexRgbStringConverter Le ColorToHexRgbStringConverter est un convertisseur qui permet aux utilisateurs de convertir une valeur Color en son équivalent hexadécimal RVB string.
ColorToHexRgbaStringConverter Le ColorToHexRgbaStringConverter est un convertisseur qui permet aux utilisateurs de convertir une valeur Color en son équivalent hexadécimal RGBA string.
ColorToHslStringConverter Le ColorToHslStringConverter est un convertisseur à sens unique qui permet aux utilisateurs de transformer une liaison de valeur Color en son équivalent HSL string.
ColorToHslaStringConverter ColorToHslaStringConverter est un convertisseur unidirectionnel qui permet aux utilisateurs de convertir une liaison de valeurs Color en son équivalent HSLA string.
ColorToInverseColorConverter Il ColorToInverseColorConverter s’agit d’un convertisseur unidirectionnel qui permet aux utilisateurs de convertir un entrant Color en son inverse.
ColorToPercentBlackKeyConverter ColorToPercentBlackKeyConverter est un convertisseur unidirectionnel qui permet aux utilisateurs de convertir un Color entrant en le composant clé en une valeur comprise entre 0 et 1.
ColorToPercentCyanConverter Le ColorToPercentCyanConverter est un convertisseur unidirectionnel qui permet aux utilisateurs de convertir un Color entrant en composant cyan comme une valeur comprise entre 0 et 1.
ColorToPercentMagentaConverter Le ColorToPercentMagentaConverter est un convertisseur unidirectionnel qui permet aux utilisateurs de convertir un Color entrant en composant magenta sous forme d’une valeur comprise entre 0 et 1.
ColorToPercentYellowConverter Le ColorToPercentYellowConverter est un convertisseur unidirectionnel qui permet aux utilisateurs de convertir un Color entrant en composant jaune sous la forme d’une valeur comprise entre 0 et 1.
ColorToRgbStringConverter ColorToRgbStringConverter est un convertisseur qui permet aux utilisateurs de convertir une liaison de valeurs Color en son équivalent RVB string.
ColorToRgbaStringConverter Le ColorToRgbaStringConverter est un convertisseur à sens unique qui permet aux utilisateurs de convertir une valeur Color en son équivalent RGBA string.
CompareConverter 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 la comparaison.
DateTimeOffsetConverter Il DateTimeOffsetConverter s’agit d’un convertisseur qui permet aux utilisateurs de convertir un DateTimeOffset en un DateTime
DoubleToIntConverter Il DoubleToIntConverter s’agit d’un convertisseur qui permet aux utilisateurs de convertir une valeur entrante double en un int et inversement. Si vous le souhaitez, l’utilisateur peut fournir un multiplicateur à la conversion par le biais de la Ratio propriété.
EnumToBoolConverter Le EnumToBoolConverter est un convertisseur unidirectionnel qui vous permet de transformer un Enum en un bool correspondant s'il est égal à un ensemble de valeurs d'énumération fournies. Il est utile de lier une collection de valeurs représentant un type d’énumération à une propriété de contrôle booléenne comme la IsVisible propriété.
EnumToIntConverter Il EnumToIntConverter s’agit d’un convertisseur qui vous permet de convertir une norme Enum (extension int) en son type primitif int sous-jacent. Il est utile de lier une collection de valeurs représentant un type d’énumération avec une numérotation par défaut à un contrôle tel qu’un Picker.
ImageResourceConverter Le ImageResourceConverter est un convertisseur qui convertit l'ID de la ressource image intégrée en son ImageSource.
IndexToArrayItemConverter Le IndexToArrayItemConverter est un convertisseur qui permet aux utilisateurs de convertir une valeur int en un élément d'un tableau. La int valeur liée aux données représente l’indexeur utilisé pour accéder au tableau. Le tableau est passé-through par le ConverterParameter.
IntToBoolConverter Il IntToBoolConverter s’agit d’un convertisseur qui permet aux utilisateurs de convertir une valeur entrante int en une bool et inversement.
InvertedBoolConverter Il InvertedBoolConverter s’agit d’un convertisseur qui permet aux utilisateurs de convertir un bool à son inverse - true devient false et vice versa.
IsEqualConverter Le IsEqualConverter est un convertisseur unidirectionnel qui retourne un bool indiquant si la valeur de liaison est égale à une autre valeur spécifiée.
IsInRangeConverter Il IsInRangeConverter s’agit d’un convertisseur unidirectionnel qui prend une valeur entrante implémentant IComparable, et une valeur minimale et maximale, et retourne le résultat de la valeur comprise entre les valeurs minimales et maximales.
IsListNotNullOrEmptyConverter IsListNotNullOrEmptyConverter est un convertisseur unidirectionnel qui convertit IEnumerable en une valeur bool.
IsListNullOrEmptyConverter IsListNullOrEmptyConverter est un convertisseur unidirectionnel qui convertit IEnumerable en une valeur bool.
IsNotEqualConverter IsNotEqualConverter est un convertisseur unidirectionnel qui retourne un bool indiquant si la valeur de liaison n’est pas égale à une autre valeur spécifiée.
IsNullConverter IsNullConverter est un convertisseur qui permet aux utilisateurs de transformer une liaison entrante en une valeur bool. Cette valeur représente si la valeur de liaison entrante est Null.
IsNotNullConverter Le IsNotNullConverter est un convertisseur qui permet aux utilisateurs de convertir une liaison entrante en une valeur bool. Cette valeur indique si la valeur de liaison entrante n'est pas nulle.
IsStringNotNullOrEmptyConverter S’agit d’un convertisseur unidirectionnel qui retourne un bool indiquant si la valeur de liaison n’est pas null et n’est pas une string.Empty.
IsStringNotNullOrWhiteSpaceConverter Le IsStringNotNullOrWhiteSpaceConverter est un convertisseur à sens unique qui renvoie un bool indiquant si la valeur de liaison n'est pas nulle, n'est pas un string.Empty et ne contient pas de caractères d'espacement uniquement.
IsStringNullOrEmptyConverter Le IsStringNullOrEmptyConverter est un convertisseur unidirectionnel qui retourne un bool indiquant si la valeur de liaison est null ou string.Empty.
IsStringNullOrWhiteSpaceConverter Le IsStringNullOrWhiteSpaceConverter est un convertisseur unidirectionnel qui retourne un bool indiquant si la valeur de liaison est nulle, string.Empty ou contient uniquement des caractères d'espacement.
ItemTappedEventArgsConverter ItemTappedEventArgsConverter est un convertisseur qui permet aux utilisateurs d’extraire la valeur de l'Item d’un objet ItemTappedEventArgs. Il peut ensuite être utilisé en combinaison avec EventToCommandBehavior.
ListToStringConverter Le ListToStringConverter est un convertisseur unidirectionnel qui fournit une concaténation des éléments d'une collection, avec le séparateur spécifié entre chaque élément.
MathExpressionConverter Le MathExpressionConverter est un convertisseur qui permet d'effectuer diverses opérations mathématiques.
MultiConverter MultiConverter convertit une valeur entrante à l’aide de tous les convertisseurs entrants en séquence.
MultiMathExpressionConverter MultiMathExpressionConverter est un convertisseur qui permet aux utilisateurs de réaliser diverses opérations mathématiques avec plusieurs valeurs à l’aide d’un MultiBinding.
SelectedItemEventArgsConverter SelectedItemEventArgsConverter est un convertisseur qui permet aux utilisateurs d'extraire la valeur de l'Item à partir d'un objet SelectedItemEventArgs. Il peut ensuite être utilisé en combinaison avec EventToCommandBehavior.
StateToBoolConverter Le StateToBoolConverter est un convertisseur unidirectionnel qui retourne un boolean résultat selon que la valeur fournie est d'un type spécifique LayoutState.
StringToListConverter Le StringToListConverter est un convertisseur unidirectionnel qui retourne un ensemble de sous-chaînes en fractionnant la chaîne d’entrée en utilisant un ou plusieurs séparateurs.
TextCaseConverter Le TextCaseConverter est un convertisseur à sens unique qui permet aux utilisateurs de convertir la casse d'une liaison de type string entrante. La propriété Type permet de définir le type de casse qui sera appliqué à la chaîne.
VariableMultiValueConverter VariableMultiValueConverter est un convertisseur qui permet aux utilisateurs de convertir bool des valeurs via un MultiBinding en un seul bool.

Créer un convertisseur .NET MAUI Community Toolkit

Le Kit de ressources de la communauté .NET MAUI fournit des implémentations sûres de type de l'interface IValueConverter fournie par .NET MAUI, ce qui permet aux développeurs d'écrire des convertisseurs de type sûr plus concis. Le kit de ressources fournit les options suivantes

Convertisseur bidirectionnel

La BaseConverter classe fournit aux développeurs la possibilité de définir le type de valeur entrant et également le type de valeur sortant pour une IValueConverter implémentation qui prend en charge une liaison bidirectionnelle. L’exemple suivant montre comment créer un convertisseur qui convertit une bool valeur en Colors.Green si true et Colors.Red si false.

public class BoolToColorConverter : BaseConverter<bool, Color>
{
    public override Color DefaultConvertReturnValue { get; set; } = Colors.Orange;

    public override bool DefaultConvertBackReturnValue { get; set; } = false;

    public override string ConvertFrom(bool value, CultureInfo? culture)
    {
        return value ? Colors.Green : Colors.Red;
    }

    public override int ConvertBackTo(Color value, CultureInfo? culture)
    {
        return value == Colors.Green;
    }
}

Le DefaultConvertReturnValue sera utilisé par l'implémentation de base et renvoyé si une exception est levée dans la méthode ConvertFrom.

Le DefaultConvertBackReturnValue sera utilisé par l'implémentation de base et renvoyé si une exception est levée dans la méthode ConvertBackTo.

Avertissement

Le convertisseur lèvera une ArgumentException si les valeurs d'entrée ou de sortie ne sont pas du type attendu. Le lancement d'exceptions peut être désactivé en attribuant à CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters la valeur false.

Convertisseur unidirectionnel

La BaseConverterOneWay classe fournit aux développeurs la possibilité de définir le type de valeur entrante et également le type de valeur sortant pour une IValueConverter implémentation qui prend en charge une liaison unidirectionnelle. L’exemple suivant montre comment créer un convertisseur qui convertit une bool valeur en Colors.Green si true et Colors.Red si false.

public class BoolToColorConverter : BaseConverterOneWay<bool, Color>
{
    public override Color DefaultConvertReturnValue { get; set; } = Colors.Orange

    public override string ConvertFrom(bool value, CultureInfo? culture)
    {
        return value ? Colors.Green : Colors.Red;
    }
}

Le DefaultConvertReturnValue sera utilisé par l'implémentation de base et retourné si une exception est lancée à l'intérieur de la méthode ConvertFrom.

Avertissement

Le convertisseur lance une ArgumentException si les valeurs entrantes ou sortantes ne sont pas du type attendu. Le lancement d'exceptions peut être désactivé en attribuant à CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters la valeur false. Le convertisseur renverra un NotSupportedException s'il est utilisé dans une liaison bidirectionnelle.