프로그래밍/WPF

[WPF] Value Converter Default

흔한티벳여우 2022. 11. 4. 16:01
반응형

아래와 같은 코드가 있다고 하자

<TextBlock Text="True Value Visible"
            Visibility="{Binding Model.TrueFalseValue, Converter={converter:BoolToVisibilityCollapsedConverter}}"/>
<TextBlock Text="False Value Collapsed" 
            Visibility="{Binding Model.TrueFalseValue, Converter={converter:ReverseBoolToVisibilityCollapsedConverter}}"/>

여기서

BoolToVisibilityCollapsedConverter는 TrueFalseValue라는 값이 True면 Visible, False면 Collapsed

ReverseBoolToVisibilityCollapsedConverter는 반대라고 하자.

 

코드는 명백히 TextBlock을 선택적으로 보여주길 원한다고 볼 수 있다.

그런데 만약 Model 객체가 Null 이면 어떻게 될까?

 

그렇게 되면 TextBlock 둘은 동시에 표시될 것이다.

 

이점을 막기 위해서 FallbackValue를 이용한다.

<TextBlock Text="True Value Visible"
            Visibility="{Binding Model.TrueFalseValue, Converter={converter:BoolToVisibilityCollapsedConverter}, FallbackValue=Collapsed}"/>
<TextBlock Text="False Value Collapsed" 
            Visibility="{Binding Model.TrueFalseValue, Converter={converter:ReverseBoolToVisibilityCollapsedConverter}, FallbackValue=Visible}"/>

 

https://learn.microsoft.com/ko-kr/dotnet/api/system.windows.data.bindingbase.fallbackvalue?view=windowsdesktop-6.0 

 

BindingBase.FallbackValue 속성 (System.Windows.Data)

바인딩에서 값을 반환할 수 없는 경우 사용할 값을 가져오거나 설정합니다.

learn.microsoft.com

위를 확인하면 FallbackValue는 바인딩 값을 반환할 수 없는 경우 Default로 사용할 값을 설정할 수 있다.

 

반응형