Freigeben über


IsInRangeConverter

IsInRangeConverter ist ein unidirektionaler Konverter, der einen eingehenden Wert annimmt, der IComparable implementiert, und das Ergebnis zurückgibt, wenn der Wert zwischen dem Minimal- und Maximalwert liegt. Das Ergebnis wird standardmäßig auf eine bool festgelegt, wenn keine Objekte über die Eigenschaften TrueObject und/oder FalseObject angegeben wurden. Wenn den Eigenschaften TrueObject und FalseObject Werte zugewiesen sind, gibt der IsInRangeConverter das zugeordnete Objekt zurück.

Hinweis

Beachten Sie, dass entweder beideTrueObject und FalseObject einen definierten Wert haben sollten oder keine.

Die Methode ConvertBack wird nicht unterstützt.

BaseConverter-Eigenschaften

Die folgenden Eigenschaften werden in der Basisklasse public abstract class BaseConverter implementiert:

Eigenschaft Beschreibung
DefaultConvertReturnValue Standardwert, der zurückgegeben werden soll, wenn IValueConverter.Convert(object?, Type, object?, CultureInfo?) eine Exception auslöst. Dieser Wert wird verwendet, wenn CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters auf true festgelegt ist.
DefaultConvertBackReturnValue Standardwert, der zurückgegeben werden soll, wenn IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) eine Exception auslöst. Dieser Wert wird verwendet, wenn CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters auf true festgelegt ist.

ICommunityToolkitValueConverter-Eigenschaften

Die folgenden Eigenschaften werden im public interface ICommunityToolkitValueConverter implementiert:

Eigenschaft Typ Beschreibung
DefaultConvertReturnValue object? Standardwert, der zurückgegeben werden soll, wenn IValueConverter.Convert(object?, Type, object?, CultureInfo?) eine Exception auslöst. Dieser Wert wird verwendet, wenn CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters auf true festgelegt ist.
DefaultConvertBackReturnValue object? Standardwert, der zurückgegeben werden soll, wenn IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) eine Exception auslöst. Dieser Wert wird verwendet, wenn CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters auf true festgelegt ist.

Syntax

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 des IsInRangeConverter

IsInRangeConverter 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.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#

IsInRangeConverter kann wie folgt in C# verwendet werden:


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"
                });
    }
}

Eigenschaften

Eigenschaft Typ BESCHREIBUNG
MinValue IComparable Der minimale Wert für den Umfang des Vergleichs.
MaxValue IComparable Der maximale Wert für den Umfang des Vergleichs.
FalseObject object Das Ergebnis, das zurückgegeben werden soll, wenn der Vergleich zu einem false-Vergleich führt.
TrueObject object Das Ergebnis, das zurückgegeben werden soll, wenn der Vergleich zu einem true-Vergleich führt.

Beispiele

Ein Beispiel für diesen Konverter in Aktion finden Sie in der Beispielanwendung für das .NET MAUI Community Toolkit.

API

Sie finden den Quellcode für IsInRangeConverter über das GitHub-Repository für das .NET MAUI Community Toolkit.