Расширение всех групп, включая вложенные, в xceed DataGridControl

Я могу нормально развернуть одну группу, но мое приложение использует вложенные группировки. Я пытаюсь сделать что-то следующим образом:

                foreach (CollectionViewGroup group in GridControl.Items.Groups)
                {
                    if (group != null)
                        GridControl.ExpandGroup(group);
                }

GridControl здесь является DataGridControl. Даже если у меня есть вложенные группы, элементы здесь будут отображать только 1 элемент, но внутри цикла группа может видеть свою подгруппу в своих виртуализированных элементах, но не в своих элементах. Я не думаю, что я могу получить доступ к VirtualizedItems.

1 ответ

Возможно, фрагмент кода, показанный ниже, будет работать в вашем сценарии. Я смог использовать его, чтобы развернуть / свернуть все группы и подгруппы. Это работало как в нашем примере DataVirtualization, так и с сеткой, в которой не использовалась виртуализация данных. Кроме того, мне не нужно было сначала прокручивать страницу вниз, даже с очень большим количеством строк.

private void btnCollapseAllGroups_ButtonClick(object sender, RoutedEventArgs e)
{
    CollapseOrExpandAll(null, true);
}

private void btnExpandAllGroups_ButtonClick(object sender, RoutedEventArgs e)
{
    CollapseOrExpandAll(null, false);
}

private void CollapseOrExpandAll(CollectionViewGroup inputGroup, Boolean bCollapseGroup)
{
    IList<Object> groupSubGroups = null;

    // If top level then inputGroup will be null
    if (inputGroup == null)
    {
        if (grid.Items.Groups != null)
            groupSubGroups = grid.Items.Groups;
    }
    else
    {
       groupSubGroups = inputGroup.GetItems();
    }

    if (groupSubGroups != null)
    {

        foreach (CollectionViewGroup group in groupSubGroups)
        {
            // Expand/Collapse current group
            if (bCollapseGroup)
                grid.CollapseGroup(group);
            else
                grid.ExpandGroup(group);

            // Recursive Call for SubGroups
            if (!group.IsBottomLevel)
                CollapseOrExpandAll(group, bCollapseGroup);
        }
    }
}
Другие вопросы по тегам