Imports Infragistics.Win.UltraWinDataSource Imports Infragistics.Win.UltraWinGrid
You can easily define a data schema and add rows of data to your schema at runtime as well as design time using the WinDataSource designer.
The following code will programmatically add Bands , Columns and Rows to an existing WinDataSource™ control, then bind the WinDataSource to an existing WinGrid element.
Create a new Windows Forms Application
Drag a UltraDataSource and UltraGrid control onto the Form.
Before you start writing any code, you should place using/imports directives in your code-behind so you don’t need to always type out a member’s fully qualified name.
In Visual Basic:
Imports Infragistics.Win.UltraWinDataSource Imports Infragistics.Win.UltraWinGrid
In C#:
using Infragistics.Win.UltraWinDataSource; using Infragistics.Win.UltraWinGrid;
Add the following code to the Load event of the form:
In Visual Basic:
Private Sub Use_WinDataSource_at_Run_Time_Load( _
ByVal sender As Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Me.UltraGrid1.DataSource = Me.UltraDataSource1
' Add two columns to the root band.
Me.UltraDataSource1.Band.Columns.Add("Col0", GetType(String))
Me.UltraDataSource1.Band.Columns.Add("Col1", GetType(String))
' Add a child band to the root band with the key of "ChildBand"
Dim childBand As UltraDataBand = _
Me.UltraDataSource1.Band.ChildBands.Add("ChildBand")
' Add two columns to the child band.
childBand.Columns.Add("ChildCol0", GetType(String))
childBand.Columns.Add("ChildCol1", GetType(String))
' Set the count on the root rows collection to 2.
Me.UltraDataSource1.Rows.SetCount(2)
Dim row As UltraDataRow
' Initialize rows with data.
'Get the first row.
row = Me.UltraDataSource1.Rows(0)
row("Col0") = "Row 0, Col 0"
row("Col1") = "Row 0, Col 1"
' Initialize the child rows of the row.
Dim childRows As UltraDataRowsCollection = row.GetChildRows("ChildBand")
childRows.SetCount(2)
childRows(0)("ChildCol0") = "Child Row 0, ChildCol 0"
childRows(0)("ChildCol1") = "Child Row 0, ChildCol 1"
childRows(1)("ChildCol0") = "Child Row 1, ChildCol 0"
childRows(1)("ChildCol1") = "Child Row 1, ChildCol 1"
' Get the second row.
row = Me.UltraDataSource1.Rows(1)
row("Col0") = "Row 1, Col 0"
row("Col1") = "Row 1, Col 1"
' Initialize the child rows of the row.
childRows = row.GetChildRows("ChildBand")
childRows.SetCount(1)
End Sub
In C#:
private void Use_WinDataSource_at_Run_Time_Load(
object sender, System.EventArgs e)
{
this.ultraGrid1.DataSource = this.ultraDataSource1;
// Add two columns to the root band.
this.ultraDataSource1.Band.Columns.Add( "Col0", typeof( string ) );
this.ultraDataSource1.Band.Columns.Add( "Col1", typeof( string ) );
// Add a child band to the root band with the key of "ChildBand".
UltraDataBand childBand =
this.ultraDataSource1.Band.ChildBands.Add( "ChildBand" );
// Add two columns to the child band.
childBand.Columns.Add( "ChildCol0", typeof( string ) );
childBand.Columns.Add( "ChildCol1", typeof( string ) );
// Set the count on the root rows collection to 2.
this.ultraDataSource1.Rows.SetCount( 2 );
UltraDataRow row;
// Initialize rows with data.
// Get the first row.
row = this.ultraDataSource1.Rows[0];
row[ "Col0" ] = "Row 0, Col 0";
row[ "Col1" ] = "Row 0, Col 1";
// Initialize the child rows of the row.
UltraDataRowsCollection childRows = row.GetChildRows( "ChildBand" );
childRows.SetCount( 2 );
childRows[0][ "ChildCol0" ] = "Child Row 0, ChildCol 0";
childRows[0][ "ChildCol1" ] = "Child Row 0, ChildCol 1";
childRows[1][ "ChildCol0" ] = "Child Row 1, ChildCol 0";
childRows[1][ "ChildCol1" ] = "Child Row 1, ChildCol 1";
// Get the second row.
row = this.ultraDataSource1.Rows[1];
row[ "Col0" ] = "Row 1, Col 0";
row[ "Col1" ] = "Row 1, Col 1";
// Initialize the child rows of the row.
childRows = row.GetChildRows( "ChildBand" );
childRows.SetCount( 1 );
}
Build and run the application. If you expand the bands you will see something similar to the following.