반응형
아래와 같은 코드가 있다고 하자
<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}"/>
위를 확인하면 FallbackValue는 바인딩 값을 반환할 수 없는 경우 Default로 사용할 값을 설정할 수 있다.
반응형
'프로그래밍 > WPF' 카테고리의 다른 글
[WPF] Return StaticResource as IValueConverter (0) | 2022.12.02 |
---|---|
[WPF] ContextMenu Binding in TreeView (0) | 2022.11.28 |
[WPF] Visibility Control based on ComboBox Selection (0) | 2022.10.22 |
[WPF] DataGrid Row Num Column 추가하기 (0) | 2022.10.13 |
[WPF] OpenFileDialog 폴더 선택하기 (0) | 2022.10.13 |