Share via


BoolToObjectConverter

사용자가 BoolToObjectConverter 값 바인딩을 특정 개체로 bool 변환할 수 있는 변환기입니다. 변환기에서 TrueObject와 FalseObject를 모두 제공하면 바인딩 값에 따라 적절한 개체가 반환됩니다.

메서드는 Convert 제공된 truevalue 경우를 반환하거나 그렇지 않은 경우를 FalseObject 반환 TrueObject 합니다.

ConvertBack 제공된 value 값이 같거나 false 다른 경우 메서드가 TrueObject 반환 true 됩니다.

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의 특정 값에 따라 컨트롤의 Label 표시 유형을 변경 하는 방법을 BoolToObjectConverter 보여 줍니다.

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>

BoolToObjectConverter 사용

XAML BoolToObjectConverter 에서 다음과 같이 사용할 수 있습니다.

<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.BoolToObjectConverterPage">

    <ContentPage.Resources>
        <ResourceDictionary>
            <toolkit:BoolToObjectConverter x:Key="BoolToObjectConverter" TrueObject="42" FalseObject="0" />
        </ResourceDictionary>
    </ContentPage.Resources>

    <Label Text="The answer to the Ultimate Question of Life, the Universe and Everything."
           IsVisible="{Binding MyValue, Converter={StaticResource BoolToObjectConverter}}" />

</ContentPage>

C#

BoolToObjectConverter C#에서 다음과 같이 사용할 수 있습니다.

class BoolToObjectConverterPage : ContentPage
{
    public BoolToObjectConverterPage()
    {
        var label = new Label
        {
            Text = "The answer to the Ultimate Question of Life, the Universe and Everything."
        };

		label.SetBinding(
			Label.IsVisibleProperty,
			new Binding(
				nameof(ViewModels.MyValue),
				converter: new BoolToObjectConverter { TrueObject = 42, FalseObject = 0 }));

		Content = label;
    }
}

C# 태그

CommunityToolkit.Maui.Markup 패키지는 C#에서 이 변환기를 사용하는 훨씬 더 간결한 방법을 제공합니다.

using CommunityToolkit.Maui.Markup;

class BoolToObjectConverterPage : ContentPage
{
    public BoolToObjectConverterPage()
    {
        Content = new Label()
            .Text("The answer to the Ultimate Question of Life, the Universe and Everything.")
            .Bind(
                Label.IsVisibleProperty,
                static (ViewModel vm) => vm.MyValue,
                converter: new BoolToObjectConverter { TrueObject = 42, FalseObject = 0 });
    }
}

예제

.NET MAUI 커뮤니티 도구 키트 샘플 애플리케이션에서 작동 중인 이 변환기의 예를 찾을 수 있습니다.

API

.NET MAUI 커뮤니티 도구 키트 GitHub 리포지토리에서 오버에 대한 BoolToObjectConverter 소스 코드를 찾을 수 있습니다.