我有一个UserControl,它有一个样式,我希望受到托管我的用户控件的主窗口上的设置复选框的影响
所以myControl.xaml有一个Style我希望有一个触发器,应该观察MainWindow.xaml中的CheckBox
我知道一种方法,就是在myControl.cs中创建一个本地属性,它将查看MainWindow.cs中的属性,该属性又将返回该cheeckbox的状态..但也许有办法这样做不用写任何c#代码?
答案 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 ...