Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
MultiMathExpressionConverter ist ein Umrechner, mit dem Benutzer verschiedene mathematische Operationen an mehreren Werten mithilfe von MultiBinding durchführen können.
Die Convert berechnet die in ConverterParameter definierte Ausdruckszeichenfolge mit mehreren Variablen und gibt ein double-Ergebnis zurück.
Die Werte, die an den Konverter übergeben werden, werden wo benannt x? ? ist die Reihenfolge, in der sie im MultiBinding definiert ist; alle anderen Variablennamen im Ausdruck werden ignoriert. Um z. B. die Berechnung von P = V * I (Potenz = Volt * amps) auszudrücken, kann Folgendes geschrieben werden:
<Label.Text>
<MultiBinding Converter="{StaticResource MultiMathExpressionConverter}" ConverterParameter="x0 * x1">
<Binding Path="Volts" />
<Binding Path="Amps" />
</MultiBinding>
</Label.Text>
Syntax
Die folgenden Beispiele zeigen, wie Sie ein Label hinzufügen, das das Ergebnis von x0 + x1 + x2 anzeigt, wobei die x-Werte in der Reihenfolge der MultiBinding-Definitionen bereitgestellt werden.
XAML
Einbinden des XAML-Namespace
Um das Toolkit in XAML verwenden zu können, muss der folgende xmlns-Abschnitt zu Ihrer Seite oder Ansicht hinzugefügt werden:
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
Daher das Folgende:
<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>
Würde geändert werden, um das xmlns wie folgt einzubinden:
<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>
Verwenden von MultiMathExpressionConverter
Dies MultiMathExpressionConverter kann wie folgt in XAML verwendet werden:
<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#
Dies MultiMathExpressionConverter kann wie folgt in C# verwendet werden:
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;
}
}
C#-Markup
Unser CommunityToolkit.Maui.Markup Paket bietet eine viel präzisere Möglichkeit, diesen Konverter in C# zu verwenden.
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");
}
}
Unterstützte Operationen
Die folgenden Vorgänge werden unterstützt:
"+""-""*""/""%"-
"?"":" "==""!=""!"-
"or"oder"||" -
"and"oder"&&", wenn Sie dies in XAML verwenden möchten, müssen Sie die Zeichen mit Escapezeichen versehen (z. B."&&") -
"ge"oder">=", wenn Sie das in XAML verwenden möchten, müssen Sie die Zeichen maskieren (z. B.">=") -
"gt"oder">", wenn Sie das in XAML verwenden möchten, müssen Sie die Zeichen maskieren (z. B.">") -
"le"oder"<="– wenn Sie das in XAML verwenden möchten, müssen Sie die Zeichen maskieren (z. B."<=") -
"lt"oder"<". Wenn Sie das in XAML verwenden möchten, müssen Sie die Zeichen maskieren (z. B."<") "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"
Beispiele
Sie finden ein Beispiel für diesen Konverter in Aktion im .NET MAUI Community Toolkit-Beispielanwendung.
API
Sie finden den Quellcode für MultiMathExpressionConverter im .NET MAUI Community Toolkit GitHub Repository.
.NET MAUI Community Toolkit