Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Der MultiConverter konvertiert einen eingehenden Wert mithilfe aller vorgelagerten Konverter nacheinander. Die Reihenfolge, in der die Konverter verwendet werden, basiert auf der Reihenfolge, in der sie definiert sind.
Syntax
Dieses Beispiel veranschaulicht, wie das MultiConverter mit dem IsEqualConverter und dem TextCaseConverter verwendet wird. Er konvertiert den eingegebenen Text in Großbuchstaben und überprüft dann, ob er der Zeichenfolge "MAUI" entspricht , was zu einem boolean Wert führt und an die IsVisible Eigenschaft eines Label Steuerelements gebunden ist.
In diesem Beispiel wird MultiConverterParameter verwendet, wodurch der ConverterParameter für den Konvertertyp definiert werden kann, auf die 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"
Daher das Folgende:
<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 geändert werden, um das xmlns wie folgt 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>
Den MultiConverter verwenden
Dies 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#
Dies 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
Unser CommunityToolkit.Maui.Markup Paket 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
Sie finden ein Beispiel für diesen Konverter in Aktion im .NET MAUI Community Toolkit-Beispielanwendung.
API
Sie finden den Quellcode für MultiConverter im .NET MAUI Community Toolkit GitHub Repository.
.NET MAUI Community Toolkit