バージョン

UltraGridChildBand クラス

UltraGridChildBandオブジェクトには、共通の親行を持つ単一バンドからの子行のコレクションを格納します。たとえば、'顧客'というバンド(0)が、'注文'および'請求'という2つの子バンドを持つとします。顧客(A)が2つのUltraGridChildBandオブジェクトを持ち、1つにはその顧客から受けたすべての注文のコレクションを格納し、もう1つにはその顧客に対するすべての請求のコレクションを格納する、などとなります。
シンタックス
'宣言
 
Public Class UltraGridChildBand 
   Inherits Infragistics.Shared.KeyedSubObjectBase
   Implements Infragistics.Shared.IKeyedSubObject, Infragistics.Shared.IKeyedSubObjectEx 
public class UltraGridChildBand : Infragistics.Shared.KeyedSubObjectBase, Infragistics.Shared.IKeyedSubObject, Infragistics.Shared.IKeyedSubObjectEx  
使用例
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 );
			}
		}
	}

}
参照