2016-04-09 8 views
0

単一のグループを拡張することはできますが、ネストされたグループ化を使用しています。私は次のように何かしようとしています:xceed DataGridControl内のネストを含むすべてのグループを展開する

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

GridControlはここではDataGridControlです。グループがネストされていても、ここに表示されるアイテムは1つのアイテムしか表示されませんが、ループの内部では、そのサブグループはそのVirtualizedItemでは表示されますが、そのアイテムには表示されません。私は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); 
     } 
    } 
}