WPF绑定到ControlTemplate的属性
我在默认TabControl模板中添加了一个复选框。 TabControl有一个TabItem,它的内容是一个有两个定义的网格。 我想在选中TabControl的复选框时隐藏其中一列。 下面是我想做/尝试做的事情WPF绑定到ControlTemplate的属性,wpf,binding,Wpf,Binding,我在默认TabControl模板中添加了一个复选框。 TabControl有一个TabItem,它的内容是一个有两个定义的网格。 我想在选中TabControl的复选框时隐藏其中一列。 下面是我想做/尝试做的事情 <TabControl> <TabControl.Resources> <Style TargetType="{x:Type TabControl}"> <Setter Property="Tem
<TabControl>
<TabControl.Resources>
<Style TargetType="{x:Type TabControl}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabControl}">
<Grid x:Name="templateRoot">
<TabPanel x:Name="headerPanel"/>
<CheckBox x:Name="MyCheckbox"/>
<Border x:Name="contentPanel"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</TabControl.Resources>
<TabItem>
<ListBox>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="80">
<ColumnDefinition.Style>
<Style TargetType="ColumnDefinition">
<Setter Property="Width" Value="80"/>
<Style.Triggers>
<DataTrigger Binding="{Binding MyCheckbox.IsChecked, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type CheckBox}}}" Value="False">
<Setter Property="Width" Value="0"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ColumnDefinition.Style>
</ColumnDefinition>
</Grid.ColumnDefinitions>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</TabItem>
</TabControl>
你的装订不正确。您应该使用FindAncestor,类似于这里,您的ControlTemplate对我来说似乎也不正确