计算GroupBy行的数量

时间:2012-12-28 10:51:59

标签: ultragrid

当我按列[Col]对超网格进行分组时,我想按行获取组的计数,我的意思是在按列[Col]分组之后,最终可能会有两个按行分组。如何按行获取组的计数?

1 个答案:

答案 0 :(得分:0)

对于整个网格,我能够获取所有顶级行的所有ChildBands,然后计算他们拥有的IsGroupByRow行的数量:

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

如果您要检查特定行,则可以执行以下操作:

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

这感觉就像一个真正圆润的方式来到儿童排对象......当然有更好的方法。

如果您按多列分组,我的示例不起作用。问题似乎是,引用了来自this post的Mike Saltzman:

  

GroupByRow永远不会有ChildBands集合。 ChildBands仅存在于数据行上。您需要做的是将行转换为UltraGridGroupByRow并使用Rows集合来获取其子行。

我认为example on Infragistics website非常接近你正在寻找的东西。