当我按列[Col]对超网格进行分组时,我想按行获取组的计数,我的意思是在按列[Col]分组之后,最终可能会有两个按行分组。如何按行获取组的计数?
答案 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非常接近你正在寻找的东西。