Collapse Expand rows in nested DataGrid

Posted by: Swapnil.Walwadkar on 5 December 2018, 7:55 pm EST

  • Posted 5 December 2018, 7:55 pm EST

    Hello,

    I am using 3 nested Datagrids to display some stats. [Parent > Child > Grand child]

    I want to Collapse/Expand all the rows in all 3 DataGrids on a single button click.

    Please let me know the smartest way to implement the same.

    Thank You.

  • Posted 6 December 2018, 9:20 pm EST

    Hi,

    For expanding and Collapsing all rows on single button click you can make use of Button.Click and C1DataGrid.RowDetailsVisibilityChanged events in combination as follows:

    
    private void visibiltyButton_Click(object sender, RoutedEventArgs e)
    {
     doChange = true;
     var visibility = (Visibility)Enum.Parse(typeof(Visibility), visibilityButton.Tag.ToString());
     if (visibility == Visibility.Visible)
     {
      (sender as Button).Tag = Visibility.Collapsed;
      parentGrid.Rows.ToList().ForEach(x => x.DetailsVisibility = Visibility.Collapsed);
     }
     else
     {
      (sender as Button).Tag = Visibility.Visible;
      parentGrid.Rows.ToList().ForEach(x => x.DetailsVisibility = Visibility.Visible);
     }
     doChange = false;
    }
    private void parentGrid_RowDetailsVisibilityChanged(object sender, C1.WPF.DataGrid.DataGridRowEventArgs e)
    {
     if (doChange && e.Row.DetailsPresenter!=null)
     {
      var detailGrid = (e.Row.DetailsPresenter.Content as C1DataGrid);
      var visibility = (Visibility)Enum.Parse(typeof(Visibility), visibilityButton.Tag.ToString());
      detailGrid.Rows.ToList().ForEach(x => x.DetailsVisibility = visibility);
      }
    }
    
    

    Please refer the attached sample(prj_NestedDataGrids.zip) for complete implementation.

    Thank you.

    prj_NestedDataGrids.zip

Need extra support?

Upgrade your support plan and get personal unlimited phone support with our customer engagement team

Learn More

Forum Channels