2016-04-09 17 views
0

içinde iç içe geçmiş de dahil olmak üzere tüm grupları genişletme Tek bir grubu paramparça edebiliyorum, ancak uygulamasında iç içe geçmiş gruplar kullanılıyor. Aşağıdaki gibi bir şey yapmaya çalışıyorum: GridControl burada bir DataGridControl var. İç içe geçmiş gruplarım olsa bile, buradaki öğeler yalnızca 1 öğe gösterecektir, ancak döngü içinde, grup kendi alt kümesini Sanallaştırılmış Öğeleri'nde görebilir, ancak Öğelerinde bulamaz. VirtualizedItems'e erişebileceğimi sanmıyorum.Bir xceed DataGridControl

cevap

1

Belki de aşağıda gösterilen kod parçacığı senaryoda çalışır. Tüm grupları ve alt grupları genişletmek/daraltmak için kullanabildim. Bu, hem DataVirtualization örneğimizde hem de veri sanallaştırmasını kullanmayan bir ızgarada çalıştı. Ayrıca, çok fazla sayıda satır bile olsa, önce aşağı kaydırmam gerekmedi.

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