Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.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
C# 如何访问作为ContentTemplate放置在WPF datagrid columnHeaderStyle中的复选框控件_C#_Wpf_Wpfdatagrid - Fatal编程技术网

C# 如何访问作为ContentTemplate放置在WPF datagrid columnHeaderStyle中的复选框控件

C# 如何访问作为ContentTemplate放置在WPF datagrid columnHeaderStyle中的复选框控件,c#,wpf,wpfdatagrid,C#,Wpf,Wpfdatagrid,我在自动生成的WPF datagrid ColumnHeaderStyle中放置了一个复选框控件,如下所示: <DataGrid.ColumnHeaderStyle> <Style TargetType="DataGridColumnHeader"> <Setter Property="ContentTemplate"> <Setter.Value>

我在自动生成的WPF datagrid ColumnHeaderStyle中放置了一个复选框控件,如下所示:

<DataGrid.ColumnHeaderStyle>
            <Style TargetType="DataGridColumnHeader">
                <Setter Property="ContentTemplate">
                    <Setter.Value>
                        <DataTemplate>
                            <CheckBox x:Name="HeaderCheckBox" Content="{Binding}" />
                        </DataTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </DataGrid.ColumnHeaderStyle>

如何访问代码隐藏中的复选框?datagrid中将有多个列,如何确定(按列)复选框是否选中?

请建议。

只需添加已选中的
事件和未选中的
事件,一旦选中,事件将被引发

 <DataGrid.ColumnHeaderStyle>
                <Style TargetType="DataGridColumnHeader">
                    <Setter Property="ContentTemplate">
                        <Setter.Value>
                            <DataTemplate>
                                <CheckBox x:Name="HeaderCheckBox" Content="{Binding}"
                                 Checked="CheckBoxChanged" Unchecked="CheckBoxChanged"/>
                            </DataTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
    </DataGrid.ColumnHeaderStyle>

只需执行
已检查的
未检查的
事件

  <DataGrid.ColumnHeaderStyle>
                    <Style TargetType="DataGridColumnHeader">
                        <Setter Property="ContentTemplate">
                            <Setter.Value>
                                <DataTemplate>
                                    <CheckBox x:Name="HeaderCheckBox" Content="{Binding}"
                                     Checked="CheckBoxChanged" Unchecked="CheckBoxChanged"/>
                                </DataTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>
        </DataGrid.ColumnHeaderStyle>

     private void CheckBoxChanged(object sender, RoutedEventArgs e)
     {
                // add what you want
     }

私有无效复选框已更改(对象发送方,路由目标e)
{
//添加您想要的内容
}

感谢moez的回复。我还有一个查询,我的datagrid有一些只读列,我不想在这些列的标题中显示复选框,我如何实现这一点?好的,首先,如果这个答案很好,请将其作为答案,然后,为了解决您的问题,您只需要添加一个DataTemplate.Triggers到您的列DataTemplateThank moez。我已经将您的响应标记为答案。你的回答很有帮助。我尝试使用DataTemplate.Triggers,但在此上下文中找不到要检查的IsReadOnly属性。请您帮助,如何使用触发器隐藏只读列的复选框。