C# 如何访问作为ContentTemplate放置在WPF datagrid columnHeaderStyle中的复选框控件
我在自动生成的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>
<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属性。请您帮助,如何使用触发器隐藏只读列的复选框。