CHashtag

[C#/WPF] Converter사용하여 bool 반대값 binding하기 본문

C#/WPF

[C#/WPF] Converter사용하여 bool 반대값 binding하기

HyoSeong 2023. 2. 20. 22:40
반응형

WPF에서 Converter를 사용하여 bool의 반대값을 binding하는 방법은 매우 간단합니다. Converter는 데이터를 변환하는데 사용되며, 이를 사용하면 XAML 코드에서 데이터 변환을 수행할 수 있습니다.

Converter를 사용하여 bool의 반대값을 binding하는 예제를 보여드리겠습니다.

먼저, Converter 클래스를 작성합니다. 이 클래스는 IValueConverter 인터페이스를 구현해야 하며, Convert와 ConvertBack 메서드를 구현해야 합니다. 다음과 같이 작성할 수 있습니다.

 

using System;
using System.Globalization;
using System.Windows.Data;

namespace MyConverter
{
    public class BooleanNegationConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value is bool)
            {
                return !(bool)value;
            }

            return value;
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value is bool)
            {
                return !(bool)value;
            }

            return value;
        }
    }
}

 

이제 XAML 코드에서 Converter를 사용하여 bool의 반대값을 binding할 수 있습니다. 

다음과 같이 작성할 수 있습니다.

 

<Window xmlns:local="clr-namespace:MyConverter">
    <Window.Resources>
        <local:BooleanNegationConverter x:Key="BooleanNegationConverter"/>
    </Window.Resources>

    <StackPanel>
        <CheckBox x:Name="checkBox" Content="CheckBox"/>
        <TextBlock Text="{Binding ElementName=checkBox, Path=IsChecked, Converter={StaticResource BooleanNegationConverter}}"/>
    </StackPanel>
</Window>

 

위 코드에서 Converter를 선언하고, CheckBox의 IsChecked 속성을 TextBlock의 Text 속성에 binding하면, CheckBox가 체크되면 TextBlock에는 false가 표시되고, CheckBox가 체크되지 않으면 TextBlock에는 true가 표시됩니다.

이것이 WPF에서 Converter를 사용하여 bool의 반대값을 binding하는 방법입니다.

 

감사합니다.

반응형