MultiConverter
Převede MultiConverter
příchozí hodnotu pomocí všech příchozích převaděčů v posloupnosti. Pořadí, ve kterém se používají převaděče, je založeno na pořadí, ve kterém jsou definovány.
Syntaxe
Tato ukázka ukazuje, jak používat s MultiConverter
a IsEqualConverter
TextCaseConverter
. Převede zadaný text na velká písmena a pak zkontroluje, že se rovná řetězci MAUI, výsledkem bude boolean
hodnota a je vázána IsVisible
na vlastnost Label
ovládacího prvku.
Tento příklad používá, MultiConverterParameter
který umožňuje, aby ConverterParameter byl definován pro typ převaděče, na který MultiConverterParameter
je nastaven.
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í multiconverteru
V XAML je možné ho MultiConverter
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="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#
V MultiConverter
jazyce C# je možné ho použít následujícím způsobem:
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(
nameof(ViewModels.EnteredName),
converter: converter,
converterParameter: parameters));
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#.
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);
}
}
Příklady
Příklad tohoto převaděče najdete v akci v ukázkové aplikaci .NET MAUI Community Toolkit.
rozhraní API
Zdrojový kód MultiConverter
najdete v úložišti .NET MAUI Community Toolkit na GitHubu.
.NET MAUI Community Toolkit