VariableMultiValueConverter
Jedná se VariableMultiValueConverter
o převaděč, který umožňuje uživatelům převést bool
hodnoty přes MultiBinding
jeden bool
. To dělá tím, že jim umožní určit, zda Všechny, Any, None nebo určitý počet hodnot jsou true, jak je uvedeno v ConditionType.
Metoda Convert
vrátí zadaný values
převedený na celkový bool
výsledek na základě definované.ConditionType
Metoda ConvertBack
vrátí pouze výsledek, pokud je nastavena ConditionType
na MultiBindingCondition.All
.
BaseConverter – vlastnosti
V základní třídě jsou implementovány následující vlastnosti: public abstract class BaseConverter
Vlastnost | Popis |
---|---|
DefaultConvertReturnValue |
Výchozí hodnota, která se má vrátit při IValueConverter.Convert(object?, Type, object?, CultureInfo?) vyvolání .Exception Tato hodnota se používá, když Je nastavena možnost true CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters . |
DefaultConvertBackReturnValue |
Výchozí hodnota, která se má vrátit při IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) vyvolání .Exception Tato hodnota se používá, když Je nastavena možnost true CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters . |
ICommunityToolkitValueConverter – vlastnosti
Následující vlastnosti jsou implementovány v public interface ICommunityToolkitValueConverter
:
Vlastnost | Type | Popis |
---|---|---|
DefaultConvertReturnValue |
object? |
Výchozí hodnota, která se má vrátit při IValueConverter.Convert(object?, Type, object?, CultureInfo?) vyvolání .Exception Tato hodnota se používá, když Je nastavena možnost true CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters . |
DefaultConvertBackReturnValue |
object? |
Výchozí hodnota, která se má vrátit při IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) vyvolání .Exception Tato hodnota se používá, když Je nastavena možnost true CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters . |
Syntaxe
Následující příklady ukazují, jak vytvořit neviditelné Label
na základě, když alespoň 2 z hodnot v MultiBinding
vyhodnocení na hodnotu true.
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í variableMultiValueConverter
V XAML je možné ho VariableMultiValueConverter
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.VariableMultiValueConverterPage">
<ContentPage.Resources>
<ResourceDictionary>
<toolkit:VariableMultiValueConverter
x:Key="VariableMultiValueConverter"
ConditionType="LessThan"
Count="2" />
</ResourceDictionary>
</ContentPage.Resources>
<Label Text="At least 2 toppings must be selected.">
<Label.IsVisible>
<MultiBinding Converter="{StaticResource VariableMultiValueConverter}">
<Binding Path="IsCheeseSelected" />
<Binding Path="IsHamSelected" />
<Binding Path="IsPineappleSelected" />
</MultiBinding>
</Label.IsVisible>
</Label>
</ContentPage>
C#
V VariableMultiValueConverter
jazyce C# je možné ho použít následujícím způsobem:
class VariableMultiValueConverterPage : ContentPage
{
public VariableMultiValueConverterPage()
{
var label = new Label
{
Text = "At least 2 toppings must be selected."
};
label.SetBinding(
Label.IsVisibleProperty,
new MultiBinding
{
Converter = new VariableMultiValueConverter
{
ConditionType = MultiBindingCondition.LessThan,
Count = 2
},
Bindings = new List<BindingBase>
{
new Binding(nameof(ViewModel.IsCheeseSelected)),
new Binding(nameof(ViewModel.IsHamSelected)),
new Binding(nameof(ViewModel.IsPineappleSelected))
}
});
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#.
using CommunityToolkit.Maui.Markup;
class VariableMultiValueConverterPage : ContentPage
{
public VariableMultiValueConverterPage()
{
Content = new Label()
.Text("At least 2 toppings must be selected.")
.Bind(
Label.IsVisibleProperty,
new List<BindingBase>
{
new Binding(nameof(ViewModel.IsCheeseSelected)),
new Binding(nameof(ViewModel.IsHamSelected)),
new Binding(nameof(ViewModel.IsPineappleSelected))
},
converter: new VariableMultiValueConverter
{
ConditionType = MultiBindingCondition.LessThan,
Count = 2
});
}
}
Vlastnosti
Vlastnost | Type | Popis |
---|---|---|
ConditionType | MultiBindingCondition |
Určuje, kolik hodnot by mělo být true mimo zadané logické hodnoty v objektu MultiBinding . |
Počet | int |
Počet hodnot,kteréch ConditionType GreaterThan LessThan Exact |
MultiBindingCondition
Výčet MultiBindingCondition
definuje následující členy:
None
- Žádná z hodnot by neměla být pravdivá.All
- Všechny hodnoty by měly být pravdivé.Any
- Jakákoli hodnota by měla být pravdivá.Exact
– Přesné číslo, které je nakonfigurované veCount
vlastnosti, by mělo být pravdivé.GreaterThan
- Větší, že číslo nakonfigurované veCount
vlastnosti by mělo být pravdivé.LessThan
- Hodnota menší než číslo nakonfigurované veCount
vlastnosti by měla být pravdivá.
Příklady
Příklad tohoto převaděče najdete v akci v ukázkové aplikaci .NET MAUI Community Toolkit.
rozhraní API
Zdrojový kód VariableMultiValueConverter
najdete v úložišti .NET MAUI Community Toolkit na GitHubu.
.NET MAUI Community Toolkit