向您的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>