2016-04-09 4 views
0

Ich bin in der Lage, eine einzelne Gruppe fein zu erweitern, aber meine App verwendet verschachtelte Gruppierungen. Ich versuche, etwas wie folgt zu tun:Erweitern aller Gruppen, einschließlich verschachtelter, in einem xceed DataGridControl

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

GridControl hier ist ein DataGridControl. Selbst wenn ich verschachtelte Gruppen habe, zeigen die Elemente hier nur 1 Element, aber innerhalb der Schleife kann die Gruppe ihre Untergruppe in ihren virtualisierten Elementen sehen, aber nicht in ihren Elementen. Ich glaube nicht, dass ich auf die VirtualizedItems zugreifen kann.

Antwort

1

Vielleicht funktioniert das unten gezeigte Code-Snippet in Ihrem Szenario. Ich konnte es verwenden, um alle Gruppen und Untergruppen zu erweitern/zu reduzieren. Dies funktionierte sowohl in unserem DataVirtualization-Beispiel als auch in einem Raster, in dem keine Datenvirtualisierung verwendet wurde. Außerdem musste ich nicht zuerst runterscrollen, selbst mit einer sehr großen Anzahl von Reihen.

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); 
     } 
    } 
} 
Verwandte Themen