Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
VariableMultiValueConverter è un convertitore che consente agli utenti di convertire i valori bool tramite un MultiBinding in un singolo bool. A tale scopo, è possibile specificare se All, Any, None o un numero specifico di valori sono true come specificato in ConditionType.
Il Convert metodo restituisce l'oggetto fornito values convertito in un risultato complessivo bool in base all'oggetto ConditionType definito.
Il ConvertBack metodo restituirà un risultato solo se ConditionType è impostato su MultiBindingCondition.All.
Proprietà di BaseConverter
Le proprietà seguenti vengono implementate nella classe base : public abstract class BaseConverter
| Proprietà | Descrizione |
|---|---|
DefaultConvertReturnValue |
Valore predefinito da restituire quando IValueConverter.Convert(object?, Type, object?, CultureInfo?) genera un'eccezione Exception. Questo valore viene usato quando CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters è impostato su true. |
DefaultConvertBackReturnValue |
Valore predefinito da restituire quando IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) genera un'eccezione Exception. Questo valore viene usato quando CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters è impostato su true. |
Proprietà ICommunityToolkitValueConverter
Le proprietà seguenti vengono implementate in public interface ICommunityToolkitValueConverter:
| Proprietà | Type | Descrizione |
|---|---|---|
DefaultConvertReturnValue |
object? |
Valore predefinito da restituire quando IValueConverter.Convert(object?, Type, object?, CultureInfo?) genera un'eccezione Exception. Questo valore viene usato quando CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters è impostato su true. |
DefaultConvertBackReturnValue |
object? |
Valore predefinito da restituire quando IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) genera un'eccezione Exception. Questo valore viene usato quando CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters è impostato su true. |
Syntax
Negli esempi seguenti viene illustrato come rendere un oggetto Label invisibile in base a quando almeno 2 dei valori in un MultiBinding oggetto restituiscono true.
XAML
Inclusione dello spazio dei nomi XAML
Per usare il toolkit in XAML, è necessario aggiungere le informazioni seguenti xmlns nella pagina o nella visualizzazione:
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
Di conseguenza:
<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>
Verrà modificato in modo da includere l'oggetto xmlns come indicato di seguito:
<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>
Utilizzo di VariableMultiValueConverter
Può VariableMultiValueConverter essere usato come segue in 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#
Può VariableMultiValueConverter essere usato come indicato di seguito in 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;
}
}
Linguaggio di markup C#
Il CommunityToolkit.Maui.Markup pacchetto offre un modo molto più conciso per usare questo convertitore in 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
});
}
}
Proprietà
| Proprietà | Type | Descrizione |
|---|---|---|
| ConditionType | MultiBindingCondition |
Indica quanti valori devono essere true fuori dai valori booleani specificati in MultiBinding. |
| Count | int |
Numero di valori che devono essere true quando si usa ConditionType , GreaterThanLessThan o Exact. |
MultiBindingCondition
L'enumerazione MultiBindingCondition definisce i membri seguenti:
-
None- Nessuno dei valori deve essere vero. -
All- Tutti i valori devono essere true. -
Any- Tutti i valori devono essere true. -
Exact- Il numero esatto configurato nellaCountproprietà deve essere true. -
GreaterThan- Deve essere vero che il numero sia maggiore di quello configurato nella proprietàCount. -
LessThan- Deve essere inferiore al numero configurato nella proprietàCount.
Esempi
È possibile trovare un esempio di questo convertitore in azione nell'applicazione di esempio .NET MAUI Community Toolkit.
API
È possibile trovare il codice sorgente per VariableMultiValueConverter nel repository .NET MAUI Community Toolkit GitHub.
.NET MAUI Community Toolkit