Sdílet prostřednictvím


IsInRangeConverter

Jedná se IsInRangeConverter o jednosměrný převaděč, který přijímá příchozí hodnotu implementující IComparable, a vrátí výsledek hodnoty mezi minimální a maximální hodnoty. Výsledkem bude výchozí hodnota bool , pokud nebyly zadány žádné objekty prostřednictvím TrueObject a/nebo FalseObject vlastností. Pokud jsou hodnoty přiřazeny k TrueObject a FalseObject vlastnosti, IsInRangeConverter vrátí odpovídající objekt přiřazen.

Poznámka:

Mějte na paměti, že obě TrueObject hodnoty by FalseObject měly mít definovanou hodnotu, nebo by neměla být definována ani jedna.

Metoda ConvertBack není podporována.

BaseConverter – vlastnosti

V základní třídě jsou implementovány následující vlastnosti: public abstract class BaseConverter

Vlastnost Popis
DefaultConvertReturnValue Výchozí hodnota, která se má vrátit při IValueConverter.Convert(object?, Type, object?, CultureInfo?) vyvolání .Exception Tato hodnota se používá, když Je nastavena možnost trueCommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters .
DefaultConvertBackReturnValue Výchozí hodnota, která se má vrátit při IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) vyvolání .Exception Tato hodnota se používá, když Je nastavena možnost trueCommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters .

ICommunityToolkitValueConverter – vlastnosti

Následující vlastnosti jsou implementovány v public interface ICommunityToolkitValueConverter:

Vlastnost Type Popis
DefaultConvertReturnValue object? Výchozí hodnota, která se má vrátit při IValueConverter.Convert(object?, Type, object?, CultureInfo?) vyvolání .Exception Tato hodnota se používá, když Je nastavena možnost trueCommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters .
DefaultConvertBackReturnValue object? Výchozí hodnota, která se má vrátit při IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) vyvolání .Exception Tato hodnota se používá, když Je nastavena možnost trueCommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters .

Syntaxe

XAML

Zahrnutí oboru názvů XAML

Pokud chcete použít sadu nástrojů v XAML, musíte do stránky nebo zobrazení přidat následující xmlns položky:

xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"

Proto platí následující:

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

Bylo by změněno tak, aby zahrnovalo xmlns následující:

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

Použití IsInRangeConverter

V XAML je možné ho IsInRangeConverter použít následujícím způsobem:

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

V IsInRangeConverter jazyce C# je možné ho použít následujícím způsobem:


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

Vlastnosti

Vlastnost Type Popis
MinValue IComparable Minimální hodnota pro porovnávaný rozsah.
MaxValue IComparable Maximální hodnota pro porovnávaný rozsah.
FalseObject object Výsledek, který se má vrátit, pokud výsledkem porovnání bude false porovnání.
TrueObject object Výsledek, který se má vrátit, pokud výsledkem porovnání bude true porovnání.

Příklady

Příklad tohoto převaděče najdete v akci v ukázkové aplikaci .NET MAUI Community Toolkit.

rozhraní API

Zdrojový kód IsInRangeConverter najdete v úložišti .NET MAUI Community Toolkit na GitHubu.