DependencyProperty를 UserControl에 추가하십시오. 기본 창의 XAML에서 DependencyProperty에 바인딩합니다. UserControl의 XAML에서 RelativeSource FindAncestor
을 사용하여 동일한 DependencyProperty에 바인딩하십시오. 당신의 UserControl이 "을 MyUserControl"라고하고 DependencyProperty에 "ShowDetails"를,이 경우 예를 들어
하여 주요 XAML에서 바인딩은 다음과 같습니다
<Window ...>
...
<local:MyUserControl ShowDetails="{Binding IsChecked,ElementName=checkBox}" />
...
<CheckBox x:Name=checkBox Content="Show Details" />
...
</Window>
및 해당 UserControl의 XAML에서
이 될 것입니다 :
<UserControl ...>
...
<Textbox ...
Visibility="{Binding ShowDetails,
RelativeSource={RelativeSource FindAncestor,local:MyUserControl,1},
Converter={StaticResource BoolToVisibiltyConverter}" />
...
</UserControl>
더 나은 점은 MVVM 패턴을 사용하는 것입니다. 이 경우 DependencyProperty를 ViewModel에두면 메인 윈도우와 UserControl의 DataContext를 통해 액세스 할 수 있습니다. MVVM으로 FindAncestor 또는 ElementName을 사용하기 때문에 필요가없는 체크 박스 뷰 모델에서 속성에 직접 텍스트 상자 바인딩 모두 :
<Window ...>
<local:MyUserControl />
...
<CheckBox IsChecked="{Binding ShowDetails}" Content="Show Details" />
</Window>
이 UserControl을 가진 :
<UserControl>
...
<TextBox ...
Visibility="{Binding ShowDetails,
Converter={StaticResource BoolToVisibiltyConverter}" />
...
</UserControl>