バージョン

ChildBandsCollection クラス

これは特定の親行と関連のあるすべての ChildBand オブジェクトのコレクションです。たとえば、'顧客'というバンド(0)が、'注文'および'請求'という 2 つの子バンドを持つとします。顧客 12345 が 2 つの ChildBand オブジェクトを持ち、1 つにはその顧客から受けたすべての注文のコレクションを格納し、もう 1 つにはその顧客に対するすべての請求のコレクションを格納する、などとなります。
シンタックス
'宣言
 
Public Class ChildBandsCollection 
   Inherits Infragistics.Shared.KeyedSubObjectsCollectionBase
public class ChildBandsCollection : Infragistics.Shared.KeyedSubObjectsCollectionBase 
使用例
Imports Infragistics.Shared
Imports Infragistics.Win
Imports Infragistics.Win.UltraWinGrid

  Private Sub Button40_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles button40.Click

      Dim rowsCount As Integer = 0
      Dim groupByRowsCount As Integer = 0

      ' Call the helper method which is a recursive implmentation for traversing rows.
      MessageBox.Show("Please wait. This operation may take a while depending on number of rows.")
      Me.TraverseAllRowsHelper(Me.ultraGrid1.Rows, rowsCount, groupByRowsCount)

      ' Show a dialog showing the number of regular rows and number of group-by rows.
      MessageBox.Show("The UltraGrid has " & rowsCount & " number of regular rows, and " & groupByRowsCount & " number of group-by rows.")

  End Sub

  Private Sub TraverseAllRowsHelper(ByVal rows As RowsCollection, ByRef rowsCount As Integer, ByRef groupByRowsCount As Integer)

      ' Loop through every row in the passed in rows collection.
      Dim row As UltraGridRow = Nothing
      For Each row In rows

          ' If you are using Outlook GroupBy feature and have grouped rows by columns in the
          ' UltraGrid, then rows collection can contain group-by rows or regular rows. So you 
          ' may need to have code to handle group-by rows as well.
          If TypeOf row Is UltraGridGroupByRow Then
              Dim groupByRow As UltraGridGroupByRow = DirectCast(row, UltraGridGroupByRow)
              ' Incremement the group-by row count.
              groupByRowsCount += 1
          Else
              ' Incremenent the regular row count.
              rowsCount += 1
          End If

          ' If the row has any child rows. Typically, there is only a single child band. However,
          ' there will be multiple child bands if the band associated with row1 has mupliple child
          ' bands. This would be the case for exmple when you have a database hierarchy in which a
          ' table has multiple child tables.
          If Not Nothing Is row.ChildBands Then

              ' Loop throgh each of the child bands.
              Dim childBand As UltraGridChildBand = Nothing
              For Each childBand In row.ChildBands
                  ' Call this method recursivedly for each child rows collection.
                  Me.TraverseAllRowsHelper(childBand.Rows, rowsCount, groupByRowsCount)
              Next
          End If

      Next

  End Sub
using Infragistics.Shared;
using Infragistics.Win;
using Infragistics.Win.UltraWinGrid;
using System.Diagnostics;

private void button40_Click(object sender, System.EventArgs e)
{

	int rowsCount = 0;
	int groupByRowsCount = 0;

	// Call the helper method which is a recursive implmentation for traversing rows.
	MessageBox.Show( "Please wait. This operation may take a while depending on number of rows." );
	this.TraverseAllRowsHelper( this.ultraGrid1.Rows, ref rowsCount, ref groupByRowsCount );

	// Show a dialog showing the number of regular rows and number of group-by rows.
	MessageBox.Show( "The UltraGrid has " + rowsCount + " number of regular rows, and " + groupByRowsCount + " number of group-by rows." );

}
		
private void TraverseAllRowsHelper( RowsCollection rows, ref int rowsCount, ref int groupByRowsCount )
{

	// Loop through every row in the passed in rows collection.
	foreach ( UltraGridRow row in rows )
	{
		// If you are using Outlook GroupBy feature and have grouped rows by columns in the
		// UltraGrid, then rows collection can contain group-by rows or regular rows. So you 
		// may need to have code to handle group-by rows as well.
		if ( row is UltraGridGroupByRow )
		{
			UltraGridGroupByRow groupByRow = (UltraGridGroupByRow)row;

			// Incremement the group-by row count.
			groupByRowsCount++;
		}
		else					
		{
			// Incremenent the regular row count.
			rowsCount++;
		}
		
		// If the row has any child rows. Typically, there is only a single child band. However,
		// there will be multiple child bands if the band associated with row1 has mupliple child
		// bands. This would be the case for exmple when you have a database hierarchy in which a
		// table has multiple child tables.
		if ( null != row.ChildBands )
		{
			// Loop throgh each of the child bands.
			foreach ( UltraGridChildBand childBand in row.ChildBands )
			{
				// Call this method recursivedly for each child rows collection.
				this.TraverseAllRowsHelper( childBand.Rows, ref rowsCount, ref groupByRowsCount );
			}
		}
	}

}
参照