Расширение всех групп, включая вложенные, в 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);
}
}
}