如何在ControlTemplate中声明子控件的属性?

时间:2012-05-10 00:30:23

标签: wpf gridview controltemplate

我有一个GridView,我想在其中一个列的标题中嵌入一个复选框。我需要在代码隐藏中检查它的IsChecked属性。但是,我无法通过名称访问它,因为它位于列标题的模板中,如下所示:

<ListView.View>
    <GridView>
        <GridViewColumn>
            <GridViewColumn.HeaderContainerStyle>
                <Style TargetType="{x:Type GridViewColumnHeader}">
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="{x:Type GridViewColumnHeader}" >
                                <Border Background="SkyBlue" BorderBrush="Black" BorderThickness="1,1,0,1">
                                <CheckBox Name="_cbAllSettingFiles" 
                                          Command="{Binding Path=CheckAllLocationFilters}" 
                                          CommandParameter="{Binding RelativeSource={RelativeSource Self}, Path=IsChecked}"/>
                                </Border>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
            </GridViewColumn.HeaderContainerStyle>
...

是否有另一种方法可以在代码隐藏中访问IsChecked属性的值?或者我首先是以错误的方式解决这个问题?

1 个答案:

答案 0 :(得分:1)

你想要将它绑定到某个属性,以这种方式访问​​它会容易得多。