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