MultiConverter
MultiConverter
konvertiert einen eingehenden Wert mit allen eingehenden Konvertern in Sequenz. Die Reihenfolge, in der die Konverter verwendet werden, richtet sich nach der Reihenfolge, in der sie definiert sind.
Syntax
In diesem Beispiel wird veranschaulicht, wie Sie MultiConverter
mit dem IsEqualConverter
und TextCaseConverter
verwenden können. Dabei wird der eingegebene Text in Großbuchstaben konvertiert und dann geprüft, ob er der Zeichenfolge 'MAUI' entspricht. Das Ergebnis ist ein boolean
Wert, der an die IsVisible
-Eigenschaft eines Label
-Steuerelements gebunden ist.
In diesem Beispiel wird der MultiConverterParameter
verwendet, mit den der ConverterParameter für den Typ des Konverters definiert werden kann, auf den der MultiConverterParameter
festgelegt ist.
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 von MultiConverter
MultiConverter
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.MultiConverterPage">
<ContentPage.Resources>
<ResourceDictionary>
<toolkit:MultiConverter x:Key="MyMultiConverter">
<toolkit:TextCaseConverter />
<toolkit:IsEqualConverter />
</toolkit:MultiConverter>
<x:Array x:Key="MultiParams"
Type="{x:Type toolkit:MultiConverterParameter}">
<toolkit:MultiConverterParameter
ConverterType="{x:Type toolkit:TextCaseConverter}"
Value="{x:Static toolkit:TextCaseType.Upper}" />
<toolkit:MultiConverterParameter
ConverterType="{x:Type toolkit:IsEqualConverter}"
Value="MAUI" />
</x:Array>
</ResourceDictionary>
</ContentPage.Resources>
<Label IsVisible="{Binding EnteredName, Converter={StaticResource MyMultiConverter}, ConverterParameter={StaticResource MultiParams}, Mode=OneWay}"
Text="Well done you guessed the magic word!"/>
</ContentPage>
C#
MultiConverter
kann wie folgt in C# verwendet werden:
class MultiConverterPage : ContentPage
{
public MultiConverterPage()
{
var label = new Label { Text = "Well done you guessed the magic word!" };
var converter = new MultiConverter
{
new TextCaseConverter(),
new IsEqualConverter()
};
var parameters = new List<MultiConverterParameter>
{
new MultiConverterParameter { ConverterType = typeof(TextCaseConverter), Value = TextCaseType.Upper },
new MultiConverterParameter { ConverterType = typeof(IsEqualConverter), Value = "MAUI" },
};
label.SetBinding(
Label.IsVisibleProperty,
new Binding(
static (ViewModels vm) => vm.EnteredName,
converter: converter,
converterParameter: parameters));
Content = label;
}
}
C#-Markup
Das Paket CommunityToolkit.Maui.Markup
bietet eine viel präzisere Möglichkeit, diesen Konverter in C# zu verwenden.
class MultiConverterPage : ContentPage
{
public MultiConverterPage()
{
var converter = new MultiConverter
{
new TextCaseConverter(),
new IsEqualConverter()
};
var parameters = new List<MultiConverterParameter>
{
new MultiConverterParameter { ConverterType = typeof(TextCaseConverter), Value = TextCaseType.Upper },
new MultiConverterParameter { ConverterType = typeof(IsEqualConverter), Value = "MAUI" },
};
Content = new Label()
.Text("Well done you guessed the magic word!")
.Bind(
Label.IsVisibleProperty,
static (ViewModel vm) => vm.EnteredName,
converter: converter,
converterParameter: parameters);
}
}
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 MultiConverter
über das GitHub-Repository für das .NET MAUI Community Toolkit.
.NET MAUI Community Toolkit