Вы можете получить количество строк расширенной группы, используя цикл, подобный следующему:
Dim ExpandedGroupCount As Integer = 0
Dim Handle As Integer = -1 'group rows have negative row handles
Do Until GridView1.GetRow(Handle) Is Nothing
If GridView1.GetRowExpanded(Handle) Then
ExpandedGroupCount += 1
End If
Handle -= 1
Loop
'Do whatever with expanded group count
MsgBox(String.Format("Number of Expanded Group Rows: {0}{2}Number of Group Rows: {1}",
ExpandedGroupCount, Math.Abs(Handle + 1), Environment.NewLine))
Аналогично, вы можете сделать это, чтобы получить счетчик расширенных основных строк:
Handle = 0
Dim ExpandedMasterRowCount As Integer = 0
Do Until GridView1.GetRow(Handle) Is Nothing
If GridView1.IsMasterRow(Handle) Then
If GridView1.GetMasterRowExpanded(Handle) Then
ExpandedMasterRowCount += 1
End If
End If
Handle += 1
Loop
MsgBox(String.Format("Number of Expanded Master Rows: {0}", ExpandedMasterRowCount))
Конечно, если вы только проверяете, чтобы увидеть, нужно ли вам устанавливать коллапс, это, вероятно, не стоит усилий. Прямой собственности, предоставляющей счет, который вы ищете, не существует.
Возможно, вы также можете использовать события, которые возникают, когда строки свернуты и расширены, чтобы отследить счетчик при его изменении. Вы должны быть осторожны с этим, потому что событие происходит только один раз, когда все разворачивается или разворачивается. Поэтому, если вы используете этот метод, обязательно проверьте rowHandle в параметре аргументов события для GridControl.InvalidRowHandle
. Это значение используется в случае свертывания или развертывания всех.