Partager via


IsInRangeConverter

IsInRangeConverter est un convertisseur unidirectionnel qui prend une valeur entrante implémentant IComparable, et une valeur minimale et maximale, et qui retourne ensuite le résultat correspondant à la valeur comprise entre les valeurs minimales et maximales. Si aucun objet n’est spécifié par le biais des propriétés TrueObject et/ou FalseObject, le résultat est défini par défaut sur un bool. Si des valeurs sont attribuées aux propriétés TrueObject et/ou FalseObject, IsInRangeConverter 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 les options CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters sont définies 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 les options CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters sont définies 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 les options CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters sont définies 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 les options CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters sont définies 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>

Utiliser IsInRangeConverter

Le IsInRangeConverter 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.IsInRangeConverterPage">
        <ResourceDictionary>
            <x:String x:Key="MinValue">Hello</x:String>
            <x:String x:Key="MaxValue">World</x:String>
            <Color x:Key="TrueColor">Green</Color>
            <Color x:Key="FalseColor">Red</Color>
        </ResourceDictionary>

    <Label BackgroundColor="{Binding MyValue, Converter={toolkit:IsInRangeConverter TrueObject={StaticResource TrueColor}, FalseObject={StaticResource FalseColor}, MinValue={StaticResource MinValue}, MaxValue={StaticResource MaxValue}}}" Text="The background of this label will be green if MyValue is between 'Hello' and 'World', otherwise red." />

</ContentPage>

C#

Le IsInRangeConverter peut être utilisé de la manière suivante dans C# :


class IsInRangeConverterPage : ContentPage
{
    public IsInRangeConverterPage()
    {
        Content = new Label()
            .Text("The background of this label will be green if MyValue is between 'Hello' and 'World', otherwise red.")
            .Bind(
                Label.BackgroundColorProperty,
                static (ViewModel vm) => vm.MyValue,
                converter: new IsInRangeConverter
                {
                        TrueObject = Colors.Green,
                        FalseObject = Colors.Red,
                        MinValue = "Hello",
                        MaxValue = "World"
                });
    }
}

Propriétés

Propriété Type Description
MinValue IComparable Valeur minimale de la plage de comparaison.
MaxValue IComparable Valeur maximale de la plage de 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.

Exemples

Vous trouverez un exemple de ce convertisseur en action dans l’exemple d’application du kit d’outils de la communauté .NET MAUI.

API

Vous pouvez trouver le code source deIsInRangeConverter sur le référentiel du kit de ressources de la communauté .NET MAUI sur GitHub.