Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
MultiMathExpressionConverter
est un convertisseur qui permet aux utilisateurs de réaliser diverses opérations mathématiques avec plusieurs valeurs à l’aide d’un MultiBinding
.
Le Convert
calcule la chaîne d'expression définie dans le ConverterParameter
avec plusieurs variables et renvoie un résultat double
.
Les valeurs transmises au convertisseur seront nommées x?
où ? est l’ordre dans lequel il est défini dans le MultiBinding
, tous les autres noms de variables dans l’expression seront ignorés. Par exemple, pour exprimer le calcul de P = V * I
(power = volts * amps), les éléments suivants peuvent être écrits :
<Label.Text>
<MultiBinding Converter="{StaticResource MultiMathExpressionConverter}" ConverterParameter="x0 * x1">
<Binding Path="Volts" />
<Binding Path="Amps" />
</MultiBinding>
</Label.Text>
Syntaxe
Les exemples suivants montrent comment ajouter un Label
qui affichera le résultat de x0 + x1 + x2
, où les valeurs de x
seront fournies dans l'ordre des définitions de MultiBinding
.
XAML
Y compris l’espace de noms XAML
Pour utiliser le kit de ressources en XAML, le xmlns
suivant doit être ajouté à votre page ou vue :
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 la xmlns
comme 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"
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit">
</ContentPage>
Utilisation de MultiMathExpressionConverter
Vous pouvez utiliser le MultiMathExpressionConverter
comme suit en 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.MultiMathExpressionConverterPage">
<ContentPage.Resources>
<ResourceDictionary>
<toolkit:MultiMathExpressionConverter x:Key="MultiMathExpressionConverter" />
</ResourceDictionary>
</ContentPage.Resources>
<Label HorizontalOptions="Center">
<Label.Text>
<MultiBinding Converter="{StaticResource MultiMathExpressionConverter}" ConverterParameter="x0 + x1 + x2">
<Binding Path="X0" />
<Binding Path="X1" />
<Binding Path="X2" />
</MultiBinding>
</Label.Text>
</Label>
</ContentPage>
C#
Le MultiMathExpressionConverter
peut être utilisé comme suit en C# :
class MultiMathExpressionConverterPage : ContentPage
{
public MultiMathExpressionConverterPage()
{
var label = new Label
{
HorizontalOptions = LayoutOptions.Center
};
label.SetBinding(
Label.TextProperty,
new MultiBinding
{
Converter = new MultiMathExpressionConverter(),
ConverterParameter = "x0 + x1 + x2",
Bindings = new List<BindingBase>
{
new Binding(static (ViewModel vm) => vm.X0),
new Binding(static (ViewModel vm) => vm.X1),
new Binding(static (ViewModel vm) => vm.X2)
}
});
Content = label;
}
}
Balisage C#
Notre CommunityToolkit.Maui.Markup
package offre un moyen beaucoup plus concis d’utiliser ce convertisseur en C#.
class MultiMathExpressionConverterPage : ContentPage
{
public MultiMathExpressionConverterPage()
{
Content = new Label()
.CenterHorizontal()
.Bind(
Label.TextProperty,
new List<BindingBase>
{
new Binding(static (ViewModel vm) => vmX0),
new Binding(static (ViewModel vm) => vmX1),
new Binding(static (ViewModel vm) => vmX2)
},
converter: new MultiMathExpressionConverter(),
converterParameter: "x0 + x1 + x2");
}
}
Opérations prises en charge
Les opérations suivantes sont prises en charge :
"+"
"-"
"*"
"/"
"%"
"?"
":"
"=="
"!="
"!"
"or"
ou"||"
"and"
ou"&&"
si vous souhaitez utiliser ce code en XAML, vous devez échapper aux caractères (par exemple"&&"
)"ge"
ou">="
si vous souhaitez utiliser ce code en XAML, vous devez échapper aux caractères (par exemple">="
)"gt"
ou">"
si vous souhaitez utiliser ce code en XAML, vous devez échapper aux caractères (par exemple">"
)"le"
ou"<="
si vous souhaitez utiliser ce code en XAML, vous devez échapper aux caractères (par exemple"<="
)"lt"
ou"<"
si vous souhaitez utiliser ce code en XAML, vous devez échapper aux caractères (par exemple"<"
)"abs"
"acos"
"asin"
"atan"
"atan2"
"ceiling"
"cos"
"cosh"
"exp"
"floor"
"ieeeremainder"
"log"
"log10"
"max"
"min"
"pow"
"round"
"sign"
"sin"
"sinh"
"sqrt"
"tan"
"tanh"
"truncate"
"^"
"pi"
"e"
"true"
"false"
Exemples
Vous trouverez un exemple de ce convertisseur en action dans l’exemple d’application .NET MAUI Community Toolkit.
API (Interface de Programmation d'Applications)
Vous pouvez trouver le code source de MultiMathExpressionConverter
dans le dépôt GitHub du .NET MAUI Community Toolkit .
.NET MAUI Community Toolkit