Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
515
CheckBox in XamGrid Row Group Header
posted

Hi,

I've a column in my XamGrid having checkbox to select/unselect a record.

I also have a "SelectAll" checkbox in the header of the xamgrid (created using HeaderTemplate of my TemplateColumn).

Now, when I "group" my rows on a column, I see the header gets repeated for each group (so as the "SelectAll" checkbox).

My requirements are:

1. Should be able to know what group it is when the "selectAll" checkbox (of certain group header) is clicked. I am handling Click event of the "selectAll" checkbox, and all different group header checkbox click land into same handler in the code behind.

2. Should be able to "Hide" the "SelectAll" checkbox in the header for certain group! on certain condition. Say, a group is having only one row, then I may not want to show the "selectAll" checkbox for this group.

I even tried using the Loaded event for "SelectAll" checkbox, so to build a collection of such loaded checkboxes and handle them via code.

But, this fails when the checkboxes keep "Loading" when I switch the tabs in my application.

Thanks and Regards.

Parents
No Data
Reply
  • 515
    posted

    I guess, I was a little too quick to post the question.

    I found this solution for the 1st part of my post.

    http://es.infragistics.com/community/forums/t/60063.aspx

    XAML:

    <ig:CheckBoxColumn Key="Bool">
        <ig:CheckBoxColumn.HeaderTemplate>
            <DataTemplate>
                <CheckBox Click="CheckBox_Click" />
            </DataTemplate>
        </ig:CheckBoxColumn.HeaderTemplate>
    </ig:CheckBoxColumn>

    CODE:
    private void CheckBox_Click(object sender, RoutedEventArgs e)
    {
        CheckBox cb = (CheckBox)sender;
        HeaderCellControl cell = (HeaderCellControl)cb.Parent;
    
        foreach (RowBase row in cell.Cell.Row.Manager.Rows)
        {
            if (row.RowType == RowType.DataRow)
            {
                ((MyDataObject)row.Data).Bool = (bool)cb.IsChecked;
            }
        }
    }

    However, (nothing to do with above solution), many a times, the group header checkboxes for different groups behaves incorrectly. Like clicking on one group header checkbox, select/unselect other group header checkbox as well.

    I still need solution for 2nd point, i.e., need to find a way to "hide/remove" certain group header checkbox from the header.

Children