MathExpressionConverter
Jest to MathExpressionConverter
konwerter, który umożliwia użytkownikom wykonywanie różnych operacji matematycznych. Ta funkcja działa z jedną Binding
wartością, jeśli wymagasz wielu wartości za pośrednictwem elementu MultiBinding
, zobacz MultiMathExpressionConverter
Funkcja Convert
oblicza ciąg wyrażenia zdefiniowany w zmiennej ConverterParameter
z jedną zmienną double
i zwraca wynik.
Wartość przekazywana do konwertera będzie mieć nazwę x
. Aby odwoływać się do tej wartości wewnątrz wyrażenia, należy użyć x
(np. x / 2
podzieli wartość przychodzącą przez 2). Wszystkie inne nazwy zmiennych w wyrażeniu zostaną zignorowane.
Właściwości obiektu BaseConverter
Następujące właściwości są implementowane w klasie bazowej: public abstract class BaseConverter
Właściwości | opis |
---|---|
DefaultConvertReturnValue |
Wartość domyślna, która ma być zwracana, gdy IValueConverter.Convert(object?, Type, object?, CultureInfo?) zgłasza wartość Exception . Ta wartość jest używana, gdy właściwość CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters jest ustawiona na true wartość . |
DefaultConvertBackReturnValue |
Wartość domyślna, która ma być zwracana, gdy IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) zgłasza wartość Exception . Ta wartość jest używana, gdy właściwość CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters jest ustawiona na true wartość . |
Właściwości ICommunityToolkitValueConverter
Następujące właściwości są implementowane w pliku public interface ICommunityToolkitValueConverter
:
Właściwość | Type | Opis |
---|---|---|
DefaultConvertReturnValue |
object? |
Wartość domyślna, która ma być zwracana, gdy IValueConverter.Convert(object?, Type, object?, CultureInfo?) zgłasza wartość Exception . Ta wartość jest używana, gdy właściwość CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters jest ustawiona na true wartość . |
DefaultConvertBackReturnValue |
object? |
Wartość domyślna, która ma być zwracana, gdy IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) zgłasza wartość Exception . Ta wartość jest używana, gdy właściwość CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters jest ustawiona na true wartość . |
Składnia
W poniższych przykładach pokazano, jak dodać obiekt Label
, który pokaże wynik x / 2
, gdzie x
będzie miał wartość MyValue
.
XAML
Dołączanie przestrzeni nazw XAML
Aby można było używać zestawu narzędzi w języku XAML, należy dodać następujące xmlns
elementy do strony lub widoku:
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
W związku z tym następujące elementy:
<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>
Zostanie zmodyfikowana tak, aby zawierała następujące xmlns
elementy:
<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>
Korzystanie z biblioteki MathExpressionConverter
Można MathExpressionConverter
go użyć w następujący sposób w języku 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.MathExpressionConverterPage">
<ContentPage.Resources>
<ResourceDictionary>
<toolkit:MathExpressionConverter x:Key="MathExpressionConverter" />
</ResourceDictionary>
</ContentPage.Resources>
<Label Text="{Binding MyValue, Converter={StaticResource MathExpressionConverter}, ConverterParameter='x/2'}" />
</ContentPage>
C#
Można MathExpressionConverter
go użyć w następujący sposób w języku C#:
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;
}
}
Znaczniki języka C#
Nasz CommunityToolkit.Maui.Markup
pakiet zapewnia znacznie bardziej zwięzły sposób używania tego konwertera w języku C#.
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");
}
}
Obsługiwane operacje
Obsługiwane są następujące operacje:
- "+"
- "-"
- "*"
- "/"
- "%"
- "abs"
- "acos"
- "asin"
- "atan"
- "atan2"
- "Sufit"
- "cos"
- "cosh"
- "exp"
- "podłoga"
- "ieeeremainder"
- "dziennik"
- "log10"
- "max"
- "min"
- "pow"
- "round"
- "znak"
- "sin"
- "sinh"
- "sqrt"
- "tan"
- "tanh"
- "obcinanie"
- "^"
- "pi"
- "e"
Przykłady
Przykład tego konwertera można znaleźć w aplikacji przykładowej zestawu narzędzi .NET MAUI Community Toolkit.
interfejs API
Kod źródłowy można MathExpressionConverter
znaleźć w repozytorium GitHub zestawu narzędzi .NET MAUI Community Toolkit.
.NET MAUI Community Toolkit