向您的UserControl添加一個DependencyProperty。在主窗口的XAML中,綁定到DependencyProperty。在你的用戶控件的XAML,綁定使用RelativeSource FindAncestor
相同的DependencyProperty。
例如,如果您的用戶控件被稱爲「的MyUserControl」,有一個DependencyProperty「ShowDetails」,在主XAML的結合將是:
<Window ...>
...
<local:MyUserControl ShowDetails="{Binding IsChecked,ElementName=checkBox}" />
...
<CheckBox x:Name=checkBox Content="Show Details" />
...
</Window>
,並在用戶控件的XAML這將是:
<UserControl ...>
...
<Textbox ...
Visibility="{Binding ShowDetails,
RelativeSource={RelativeSource FindAncestor,local:MyUserControl,1},
Converter={StaticResource BoolToVisibiltyConverter}" />
...
</UserControl>
更重要的是,使用MVVM模式。在這種情況下,你會放在你的視圖模型的的DependencyProperty這將是throught兩個主窗口的DataContext的,你的用戶控件訪問。隨着MVVM沒有必要使用FindAncestor或的ElementName,因爲這兩個複選框,並直接在文本框綁定到視圖模型屬性:
<Window ...>
<local:MyUserControl />
...
<CheckBox IsChecked="{Binding ShowDetails}" Content="Show Details" />
</Window>
這個用戶控件:
<UserControl>
...
<TextBox ...
Visibility="{Binding ShowDetails,
Converter={StaticResource BoolToVisibiltyConverter}" />
...
</UserControl>