VariableMultiValueConverter
VariableMultiValueConverter
est un convertisseur qui permet aux utilisateurs de convertir des valeurs bool
via MultiBinding
en un seul bool
. Pour ce faire, il leur permet de spécifier si All, Any, None ou un nombre spécifique de valeurs sont true, comme indiqué dans ConditionType.
La méthode Convert
retourne le values
fourni, converti en résultat bool
global en fonction de la valeur ConditionType
définie.
La méthode ConvertBack
retourne un résultat uniquement si ConditionType
a la valeur MultiBindingCondition.All
.
Propriétés de BaseConverter
Les propriétés suivantes sont implémentées dans la classe de base public abstract class BaseConverter
:
Propriété | Description |
---|---|
DefaultConvertReturnValue |
Valeur par défaut à retourner quand IValueConverter.Convert(object?, Type, object?, CultureInfo?) lève Exception . Cette valeur est utilisée quand CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters a la valeur true . |
DefaultConvertBackReturnValue |
Valeur par défaut à retourner quand IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) lève Exception . Cette valeur est utilisée quand CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters a la valeur true . |
Propriétés de ICommunityToolkitValueConverter
Les propriétés suivantes sont implémentées dans public interface ICommunityToolkitValueConverter
:
Propriété | Type | Description |
---|---|---|
DefaultConvertReturnValue |
object? |
Valeur par défaut à retourner quand IValueConverter.Convert(object?, Type, object?, CultureInfo?) lève Exception . Cette valeur est utilisée quand CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters a la valeur true . |
DefaultConvertBackReturnValue |
object? |
Valeur par défaut à retourner quand IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) lève Exception . Cette valeur est utilisée quand CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters a la valeur true . |
Syntaxe
Les exemples suivants montrent comment rendre Label
invisible quand au moins 2 des valeurs de MultiBinding
sont true.
XAML
Y compris l’espace de noms XAML
Pour utiliser le kit de ressources dans XAML, le xmlns
suivant doit être ajouté à votre page ou à votre affichage :
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
Il en résulte ce qui suit :
<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>
Serait modifié pour inclure le xmlns
de la manière suivante :
<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>
Utilisation de VariableMultiValueConverter
Le VariableMultiValueConverter
peut être utilisé de la manière suivante dans XAML :
<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#
Le VariableMultiValueConverter
peut être utilisé de la manière suivante dans C# :
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(static (ViewModel vm) => vm.IsCheeseSelected),
new Binding(static (ViewModel vm) => vmIsHamSelected),
new Binding(static (ViewModel vm) => vmIsPineappleSelected)
}
});
Content = label;
}
}
Balisage C#
Notre package CommunityToolkit.Maui.Markup
offre un moyen beaucoup plus concis d’utiliser ce convertisseur en 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(static (ViewModel vm) => vm.IsCheeseSelected),
new Binding(static (ViewModel vm) => vm.IsHamSelected),
new Binding(static (ViewModel vm) => vm.IsPineappleSelected)
},
converter: new VariableMultiValueConverter
{
ConditionType = MultiBindingCondition.LessThan,
Count = 2
});
}
}
Propriétés
Propriété | Type | Description |
---|---|---|
ConditionType | MultiBindingCondition |
Indique combien de valeurs doivent être true parmi les valeurs booléennes fournies dans MultiBinding . |
Count | int |
Nombre de valeurs qui doivent être true quand vous utilisez le ConditionType GreaterThan , LessThan ou Exact . |
MultiBindingCondition
L’énumération MultiBindingCondition
définit les membres suivants :
None
- Aucune des valeurs ne doit être true.All
- Toutes les valeurs doivent être true.Any
- N’importe quelle valeur doit être true.Exact
- Le nombre exact configuré dans la propriétéCount
doit être true.GreaterThan
- Le nombre de valeurs qui sont true doit être supérieur au nombre spécifié dans la propriétéCount
.LessThan
- Le nombre de valeurs qui sont true doit être inférieur au nombre spécifié dans la propriétéCount
.
Exemples
Vous trouverez un exemple de ce convertisseur en action dans l’exemple d’application du kit de ressources de la communauté .NET MAUI.
API
Vous pouvez trouver le code source deVariableMultiValueConverter
sur le référentiel du kit de ressources de la communauté .NET MAUI sur GitHub.
.NET MAUI Community Toolkit