wpf:从UserControl绑定到主窗口上的样式属性

时间:2010-06-15 12:34:21

标签: wpf

我有一个UserControl,它有一个样式,我希望受到托管我的用户控件的主窗口上的设置复选框的影响

所以myControl.xaml有一个Style我希望有一个触发器,应该观察MainWindow.xaml中的CheckBox

我知道一种方法,就是在myControl.cs中创建一个本地属性,它将查看MainWindow.cs中的属性,该属性又将返回该cheeckbox的状态..但也许有办法这样做不用写任何c#代码?

1 个答案:

答案 0 :(得分:0)

您应该将主窗口中的复选框绑定到“视图模型”对象的属性。在UserControl的触发器中,绑定到相同“视图模型”对象的相同属性。

如果您的“视图模型”对象被设置为主窗口的DataContext,它也将在UserControl中可用。

在主窗口中:

<CheckBox Content="Click here if you are happy"
          IsChecked="{Binding UserIsHappy}" />

在UserControl中:

<Style>
  ...
  <DataTrigger Binding="{Binding UserIsHappy}" Value="True">
    ... custom changes for happy people here ...