MathExpressionConverter
사용자가 MathExpressionConverter
다양한 수학 연산을 수행할 수 있는 변환기입니다. 다음을 통해 여러 값이 필요한 경우 단일 Binding
값으로 작동합니다.MultiBinding
MultiMathExpressionConverter
하나의 Convert
변수를 사용하여 정의된 식 문자열을 ConverterParameter
계산하고 결과를 반환합니다 double
.
변환기로 전달되는 값의 이름은 x
지정됩니다. 식 내에서 이 값을 참조하려면 사용해야 x
합니다(예: x / 2
들어오는 값을 2로 나눕니다). 식의 다른 변수 이름은 무시됩니다.
BaseConverter 속성
다음 속성은 기본 클래스 public abstract class BaseConverter
에서 구현됩니다.
속성 | 설명 |
---|---|
DefaultConvertReturnValue |
을 throw할 때 IValueConverter.Convert(object?, Type, object?, CultureInfo?) 반환할 기본값입니다 Exception . 이 값은 CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters 가 로 설정된 true 경우에 사용됩니다. |
DefaultConvertBackReturnValue |
을 throw할 때 IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) 반환할 기본값입니다 Exception . 이 값은 CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters 가 로 설정된 true 경우에 사용됩니다. |
ICommunityToolkitValueConverter 속성
다음 속성은 다음에서 구현됩니다.public interface ICommunityToolkitValueConverter
속성 | Type | 설명 |
---|---|---|
DefaultConvertReturnValue |
object? |
을 throw할 때 IValueConverter.Convert(object?, Type, object?, CultureInfo?) 반환할 기본값입니다 Exception . 이 값은 CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters 가 로 설정된 true 경우에 사용됩니다. |
DefaultConvertBackReturnValue |
object? |
을 throw할 때 IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) 반환할 기본값입니다 Exception . 이 값은 CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters 가 로 설정된 true 경우에 사용됩니다. |
구문
다음 예제에서는 값을 MyValue
가질 위치 x
의 x / 2
결과를 보여 주는 a Label
를 추가하는 방법을 보여 줍니다.
XAML
XAML 네임스페이스 포함
XAML에서 도구 키트를 사용하려면 페이지 또는 보기에 다음 xmlns
을 추가해야 합니다.
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
따라서 다음을 수행합니다.
<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>
다음과 같이 포함 xmlns
하도록 수정됩니다.
<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>
MathExpressionConverter 사용
XAML MathExpressionConverter
에서 다음과 같이 사용할 수 있습니다.
<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
C#에서 다음과 같이 사용할 수 있습니다.
class MathExpressionConverterPage : ContentPage
{
public MathExpressionConverterPage()
{
var label = new Label();
label.SetBinding(
Label.TextProperty,
new Binding(
nameof(ViewModels.MyValue),
converter: new MathExpressionConverter(),
converterParameter: "x/2"));
Content = label;
}
}
C# 태그
이 CommunityToolkit.Maui.Markup
패키지는 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");
}
}
지원되는 작업
지원되는 작업은 다음과 같습니다.
- "+"
- "-"
- "*"
- "/"
- "%"
- "abs"
- "acos"
- "asin"
- "atan"
- "atan2"
- "ceiling"
- "cos"
- "cosh"
- "exp"
- "floor"
- "ieeere기본der"
- "로그"
- "log10"
- "max"
- "min"
- "pow"
- "round"
- "sign"
- "sin"
- "sinh"
- "sqrt"
- "tan"
- "tanh"
- "잘림"
- "^"
- "pi"
- "e"
예제
.NET MAUI 커뮤니티 도구 키트 샘플 애플리케이션에서 작동 중인 이 변환기의 예를 찾을 수 있습니다.
API
.NET MAUI 커뮤니티 도구 키트 GitHub 리포지토리에서 오버에 대한 MathExpressionConverter
소스 코드를 찾을 수 있습니다.
.NET MAUI Community Toolkit
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기