我创建了一个包含 4 列的数据表,其中 3 列是字符串,另一列是布尔类型。我将数据表(xmldatadocument)映射到 wpf 中的 datagridview。所以结果看起来数据网格中的文本列和复选框列。我在复选框列标题中添加了一个复选框标题模板。当 i\header 复选框未选中时,我可以取消选中列中的所有复选框。当标题 chekcbox 被选中时,我还可以检查列中的所有复选框。但是如果未选中该列中的复选框之一,我也需要取消选中标题复选框。请帮我解决这个问题。 . 我在下面添加了屏幕截图、XAML 和代码。
PS:使用 WPF 数据网格。
<dg:DataGrid.Columns>
<dg:DataGridCheckBoxColumn Binding="{Binding Check}" Width="50" >
<dg:DataGridCheckBoxColumn.HeaderTemplate>
<DataTemplate x:Name="dtAllChkBx">
<CheckBox Name="cbxAll" Content="{x:Static properties:Resources.lblAll}" Checked="CheckBox_Checked" Unchecked="CheckBox_Unchecked"></CheckBox>
</DataTemplate>
</dg:DataGridCheckBoxColumn.HeaderTemplate>
public static ObservableCollection<Lst> list = new ObservableCollection<Lst>();
private void CheckBox_Checked(object sender, RoutedEventArgs e)
{
for (int i = 0; i < list.Count; i++)
{
list[i].Check = true;
}
}
private void CheckBox_Unchecked(object sender, RoutedEventArgs e)
{
for (int i = 0; i < list.Count; i++)
{
list[i].Check = false;
}
}
public class Lst : ObservableCollection<Lst>
{
public bool Check { get; set; }
}