Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF绑定到ControlTemplate的属性_Wpf_Binding - Fatal编程技术网

WPF绑定到ControlTemplate的属性

WPF绑定到ControlTemplate的属性,wpf,binding,Wpf,Binding,我在默认TabControl模板中添加了一个复选框。 TabControl有一个TabItem,它的内容是一个有两个定义的网格。 我想在选中TabControl的复选框时隐藏其中一列。 下面是我想做/尝试做的事情 <TabControl> <TabControl.Resources> <Style TargetType="{x:Type TabControl}"> <Setter Property="Tem

我在默认TabControl模板中添加了一个复选框。 TabControl有一个TabItem,它的内容是一个有两个定义的网格。 我想在选中TabControl的复选框时隐藏其中一列。 下面是我想做/尝试做的事情

<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对我来说似乎也不正确