Sdílet prostřednictvím


IndexToArrayItemConverter

Jedná se IndexToArrayItemConverter o převaděč, který uživatelům umožňuje převést int vazbu hodnot na položku v poli. Hodnota int vázaná na data představuje indexer použitý pro přístup k poli. Pole se předává přes ConverterParameter.

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

V XAML je možné ho IndexToArrayItemConverter 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="MyLittleApp.MainPage">
    <ContentPage.Resources>
        <ResourceDictionary>
            <toolkit:IndexToArrayItemConverter x:Key="IndexToArrayItemConverter" />
            <x:Array x:Key="MyArray" Type="x:String">
                <x:String>Value 1</x:String>
                <x:String>Value 2</x:String>
                <x:String>Value 3</x:String>
                <x:String>Value 4</x:String>
                <x:String>Value 5</x:String>
            </x:Array>
        </ResourceDictionary>
    </ContentPage.Resources>

    <StackLayout>

        <Label Text="{Binding MyIntegerValue, Converter={StaticResource IndexToArrayItemConverter}, ConverterParameter={StaticResource MyArray}}" />

    </StackLayout>
</ContentPage>

C#

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

class IndexToArrayItemConverter : ContentPage
{
    public IndexToArrayItemConverter()
    {
        var array = new string[] { "Value 1", "Value 2", "Value 3", "Value 4", "Value 5" };

        var label = new Label();

        label.SetBinding(
            Label.TextProperty, 
            new Binding(
                nameof(ViewModel.MyIntegerValue), 
                converter: new IndexToArrayItemConverter(), 
                converterParameter: array)); 

        Content = label;        
    }
}

Revize jazyka C#

Náš CommunityToolkit.Maui.Markup balíček nabízí mnohem stručnější způsob použití tohoto převaděče v jazyce C#.

using CommunityToolkit.Maui.Markup;

class IndexToArrayItemConverter : ContentPage
{
    public IndexToArrayItemConverter()
    {
         var array = new string[] { "Value 1", "Value 2", "Value 3", "Value 4", "Value 5" };

        Content = new Label()
            .Bind(
                Label.TextProperty, 
                static (ViewModel vm) => vm.MyIntegerValue,
                converter: new IndexToArrayItemConverter(),
                converterParameter: array); 
    }
}

Příklady

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

rozhraní API

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