Xamarin Community Toolkit MultiConverter

Der MultiConverter ist ein Konverter, mit dem Benutzer mehrere Konverter zusammenketten können. Der anfängliche Bindungswert wird an den ersten Konverter übergeben, und je nachdem, was diese Konverter zurückgeben, wird dieser Wert anschließend an den nächsten Konverter übergeben.

Syntax

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:xct="http://xamarin.com/schemas/2020/toolkit"
             x:Class="MyLittleApp.MainPage">

    <ContentPage.Resources>
        <ResourceDictionary>
            <xct:MultiConverter x:Key="MultiConverter">
                <xct:TextCaseConverter />
                <xct:NotEqualConverter />
            </xct:MultiConverter>
            <x:Array x:Key="MultiConverterParams" Type="{x:Type xct:MultiConverterParameter}">
                <xct:MultiConverterParameter ConverterType="{x:Type xct:TextCaseConverter}" Value="{x:Static xct:TextCaseType.Upper}" />
                <xct:MultiConverterParameter ConverterType="{x:Type xct:NotEqualConverter}" Value="ANDREI ROCKS 🎸" />
            </x:Array>
        </ResourceDictionary>
    </ContentPage.Resources>

    <StackLayout>

        <Label IsVisible="{Binding MyStringValue, Converter={StaticResource MultiConverter}, ConverterParameter={StaticResource MultiConverterParams}}" />

    </StackLayout>
</ContentPage>

Arbeiten mit Parametern

Aufgrund der Art der Funktionsweise von Konvertern ist es nicht möglich, Parameter an jeden einzelnen Konverter im MultiConverter zu übergeben. Um diese IListMultiConverterParameter Objekte zu umgehen, wird als Konverterparameter des MultiConverter akzeptiert. Diese Objekte stellen die Parameter dar, die Sie für jeden einzelnen Konverter bereitstellen möchten. Der MultiConverter entspricht anschließend dem Typ eines seiner Konverter mit dem Typ, der in der ConverterType Eigenschaft eines MultiConverterParameterKonverters angegeben ist. Anschließend wird die bereitgestellte Value Eigenschaft verwendet und als ConverterParameter Konverter verwendet.

Beispiel

Beispielseite "MultiConverter"

Sie können dies in Aktion in der Xamarin Community Toolkit-Beispiel-App sehen.

API