2012-12-28 2 views
1

초 울트라 그리드를 [Col] 열로 그룹화하면 행 수로 그룹 수를 얻고 싶습니다. [Col] 열로 그룹을 만들면 결국 두 가지가 나타날 수 있습니다. 행별로 그룹화하십시오. 행 단위로 그룹 수를 얻으려면 어떻게해야합니까?GroupBy 행 수를 계산하십시오.

+0

의미가 무엇인지 명확히하려는 경우 "결국 두 그룹으로 나올 수 있습니다"라는 구가 있습니다. –

답변

1

grid.Rows.Count를 확인할 수 있도록 그리드의 행 모음에 그룹화가 완료된 후 GroupByRows가 포함됩니다. 특정 행이있는 경우

var childBands = UltraGrid1.Rows.SelectMany(x => x.ChildBands.Cast<UltraGridChildBand()); 
var allChildRows = childBands.SelectMany(y => y.Rows)); 
var groupByRowCount = allChildRows.Count(x => x.IsGroupByRow); 

당신이 원하는 :

+0

여러 밴드가 없거나 외부에있는 열로 그룹화되어있는 경우 거의 모든 밴드가 가장 간단하고 훌륭하게 작동합니다! –

0

는 전체 그리드를 위해 나는 모든 최상위 행에 대한 모든 ChildBands을 잡아하고 그들이 있었다 IsGroupByRow 행의 수를 계산 할 수 있었다 당신이 다음을 수행 할 수 있습니다 확인 :

var childBands = specificRow.ChildBands.Cast<UltraGridChildBand>(); 
var groupByRowCount = childBands.SelectMany(x => x.Rows).Count(x => x.IsGroupByRow) 

이 자식 행 개체에 ... 확실히 더 나은 방법이 얻을 수있는 정말 라운드에 대한 방법 것 같은 느낌이 든다.


두 개 이상의 열로 그룹화하는 경우 예제가 작동하지 않습니다. 문제는 this post에서 마이크 Saltzman을 인용, 그 것 같다 :

GroupByRow는 ChildBands 수집을하지 않습니다. ChildBands는 데이터 행에만 존재합니다. 필요한 작업은 UltraGridGroupByRow에 행을 캐스팅하고 Rows 컬렉션을 사용하여 하위 행을 가져 오는 것입니다.

example on Infragistics website 내가 찾고있는 것에 매우 가깝다고 생각합니다.

관련 문제