[C# WPF] Trigger에서 문자열 공백 Check하기

우롱밀크티당도70·2024년 1월 24일
1

WPF

목록 보기
20/22
post-thumbnail
post-custom-banner

1. 배경

xaml에서 MultiDataTrigger의 Condition 작성 중 Null, 공백을 체크해야 할 일이 생겼다.

처음엔 Value 값으로 {x:Null}을 작성하면 되려나 했는데 작동하지 않았다.
Converter를 작성할까 하다가 더 찾아봤더니 네임스페이스를 추가하여 Value에서 공백을 체크할 수 있는 방법이 있었다.


2. 개발환경

  • VisualStudio 2022 / WPF 애플리케이션(.NET Framework 4.7.2)

3. 내용

1. 네임스페이스 작성

	xmlns:sys="clr-namespace:System;assembly=mscorlib"

2. xaml 작성

		<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
            <TextBlock Text="값이 없으면 글씨 색이 빨강이 된다." />
            
            <StackPanel Orientation="Horizontal">
                <Label Content=" 값 : " />
                <TextBox x:Name="TextBox1" Text="기본값" VerticalContentAlignment="Center" Width="100"/>
            </StackPanel>
        </StackPanel>

3. TextBlock에 Style DataTrigger 작성

DataTrigger Binding은 ElementName에 TextBox의 x:Name을 작성하고 Value는 {x:Static sys:String.Empty}를 작성하여 문자열이 공백일 때를 체크한다.

		<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
            <TextBlock Text="값이 없으면 글씨 색이 빨강이 된다.">
                <TextBlock.Style>
                    <Style TargetType="TextBlock">
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding ElementName=TextBox1, Path=Text}" Value="{x:Static sys:String.Empty}">
                                <Setter Property="Foreground" Value="Red"/>
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </TextBlock.Style>
            </TextBlock>
            
            <StackPanel Orientation="Horizontal">
                <Label Content=" 값 : " />
                <TextBox x:Name="TextBox1" Text="기본값" VerticalContentAlignment="Center" Width="100"/>
            </StackPanel>
        </StackPanel>

4. 결과

TextBox에 입력된 값이 없으면 TextBlock의 글씨 색이 변한다.
예제는 DataTrigger를 사용했는데 MultiDataTrigger의 Condition작성 시에도 사용 가능하다.


5. 참조

profile
안뇽하세용
post-custom-banner

2개의 댓글

comment-user-thumbnail
2024년 1월 30일

string.IsNullOrEmpty 메서드와 동일한 결과를 얻기 위해서 값이 {x:Null}인 경우에도 프로퍼티를 설정해 주는 게 좋습니다.

1개의 답글