Datagrid Column header should check / uncheck CheckBox’s state depending upon whether all CheckBoxes of a DataGridView column are checked or unchecked

后端 未结 2 1190
北荒
北荒 2020-12-06 06:30

\"enter The problem i\'m stuck with is related to checkbox in DataGrid(WPF). I\'ve attached th

相关标签:
2条回答
  • 2020-12-06 06:57
    //this event is for **Checked and UnChecked** of up check box (cbxall)
    private void UpCheckbox_Checked(object sender, RoutedEventArgs e)
    {
        //checkBox1 = cbxall (your up checkbox)
        if (checkBox1.IsChecked == true)
        {
            dataGrid1.Items.OfType<YourClass>().ToList().ForEach(x => x.IsChecked = true);
        }
        else
        {
            dataGrid1.Items.OfType<YourClass>().ToList().ForEach(x => x.IsChecked = false);
        }
    }
    
    //this event is for all other check box
    //**Checked and UnChecked** of all other check box is this event
    private void OtherCheckbox_Checked(object sender, RoutedEventArgs e)
    {
        //checkBox1 = cbxall (your up checkbox)
        if (dataGrid1.Items.OfType<YourClass>().All(x => x.IsChecked == true))
        {
            checkBox1.IsChecked = true;
        }
        else if (dataGrid1.Items.OfType<YourClass>().All(x => x.IsChecked == false))
        {
            checkBox1.IsChecked = false;
        }
        else
        {
            checkBox1.IsChecked = null;
        }
    }
    
    0 讨论(0)
  • 2020-12-06 07:07

    In your XAML Datagrid add:

    <DataGridTemplateColumn.Header>
    <CheckBox x:Name="ckbHeader" Click="ckbHeader_Click"></CheckBox>
    </DataGridTemplateColumn.Header>
    

    In your code add:

    var ckbox = sender as CheckBox;
    var All = Collection.View.SourceCollection as List<ObjectX>;
    
    if (ckbox.IsChecked)
    {
        foreach (var item in All)       
            item.Marked = true;     
    }
    else
    {
        foreach (var item in All)       
            item.Marked = false;        
    }
    Collection.View.Refresh();
    

    NOTE: The sender is CheckBox

    0 讨论(0)
提交回复
热议问题