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 IList
MultiConverterParameter
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 MultiConverterParameter
Konverters 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.