MathExpressionConverter
MathExpressionConverter
ist ein Konverter, mit dem Benutzer verschiedene mathematische Vorgänge ausführen können. Das funktioniert mit nur einem einzelnen Binding
-Wert. Wenn Sie mehrere Werte über eine MultiBinding
benötigen, finden Sie weitere Informationen unter MultiMathExpressionConverter
Mit Convert
wird die Ausdruckszeichenfolge berechnet, die im ConverterParameter
mit einer Variablen definiert ist, und es wird ein Ergebnis vom Typ double
zurückgegeben.
Der Wert, der an den Konverter übergeben wird, erhält den Namen x
. Um innerhalb des Ausdrucks auf diesen Wert zu verweisen, müssen Sie x
verwenden (z. B. wird mit x / 2
der eingehende Wert durch 2 dividiert). Alle anderen Variablennamen im Ausdruck werden ignoriert.
BaseConverter-Eigenschaften
Die folgenden Eigenschaften werden in der Basisklasse public abstract class BaseConverter
implementiert:
Eigenschaft | Beschreibung |
---|---|
DefaultConvertReturnValue |
Standardwert, der zurückgegeben werden soll, wenn IValueConverter.Convert(object?, Type, object?, CultureInfo?) eine Exception auslöst. Dieser Wert wird verwendet, wenn CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters auf true festgelegt ist. |
DefaultConvertBackReturnValue |
Standardwert, der zurückgegeben werden soll, wenn IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) eine Exception auslöst. Dieser Wert wird verwendet, wenn CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters auf true festgelegt ist. |
ICommunityToolkitValueConverter-Eigenschaften
Die folgenden Eigenschaften werden im public interface ICommunityToolkitValueConverter
implementiert:
Eigenschaft | Typ | Beschreibung |
---|---|---|
DefaultConvertReturnValue |
object? |
Standardwert, der zurückgegeben werden soll, wenn IValueConverter.Convert(object?, Type, object?, CultureInfo?) eine Exception auslöst. Dieser Wert wird verwendet, wenn CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters auf true festgelegt ist. |
DefaultConvertBackReturnValue |
object? |
Standardwert, der zurückgegeben werden soll, wenn IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) eine Exception auslöst. Dieser Wert wird verwendet, wenn CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters auf true festgelegt ist. |
Syntax
In den folgenden Beispielen wird gezeigt, wie Sie ein Label
hinzufügen, das das Ergebnis von x / 2
anzeigt, wobei x
den Wert MyValue
hat.
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"
Der folgende Abschnitt:
<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 dann geändert werden, um xmlns
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 MathExpressionConverter
MathExpressionConverter
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.MathExpressionConverterPage">
<ContentPage.Resources>
<ResourceDictionary>
<toolkit:MathExpressionConverter x:Key="MathExpressionConverter" />
</ResourceDictionary>
</ContentPage.Resources>
<Label Text="{Binding MyValue, Converter={StaticResource MathExpressionConverter}, ConverterParameter='x/2'}" />
</ContentPage>
C#
MathExpressionConverter
kann wie folgt in C# verwendet werden:
class MathExpressionConverterPage : ContentPage
{
public MathExpressionConverterPage()
{
var label = new Label();
label.SetBinding(
Label.TextProperty,
new Binding(
static (ViewModels vm) => vm.MyValue,
converter: new MathExpressionConverter(),
converterParameter: "x/2"));
Content = label;
}
}
C#-Markup
Das Paket CommunityToolkit.Maui.Markup
bietet eine viel präzisere Möglichkeit, diesen Konverter in C# zu verwenden.
using CommunityToolkit.Maui.Markup;
class MathExpressionConverterPage : ContentPage
{
public MathExpressionConverterPage()
{
Content = new Label()
.Bind(
Label.TextProperty,
static (ViewModel vm) => vm.MyValue,
converter: new MathExpressionConverter(),
converterParameter: "x/2");
}
}
Unterstützte Vorgänge
Die folgenden Operationen werden unterstützt:
- "+"
- "-"
- "*"
- "/"
- "%"
- "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"
Beispiele
Ein Beispiel für diesen Konverter in Aktion finden Sie in der Beispielanwendung für das .NET MAUI Community Toolkit.
API
Sie finden den Quellcode für MathExpressionConverter
über das GitHub-Repository für das .NET MAUI Community Toolkit.
.NET MAUI Community Toolkit