Imports Infragistics.Win
Imports Infragistics.Win.UltraWinListView
    Private Sub PopulateSubItemColumnsCollection(ByVal ordersTable As DataTable, ByVal employeesValueList As ValueList, ByVal shippersValueList As ValueList)
        Dim dataRow As DataRow
        '	Use the UltraListView's MainColumn to represent the 'OrderID' column
        '	of the 'Orders' table.
        Dim mainDataColumn As DataColumn = ordersTable.Columns("OrderID")
        Me.ultraListView1.MainColumn.Text = mainDataColumn.Caption
        Me.ultraListView1.MainColumn.DataType = mainDataColumn.DataType
        '	Populate the SubItemColumns collection from the Columns collection of the
        '	'Orders' table
        Dim dataColumn As DataColumn
        For Each dataColumn In ordersTable.Columns
            If dataColumn Is mainDataColumn Then GoTo skip
            '	Add an UltraListViewSubItemColumn to the UltraListView's SubItemColumns collection,
            '	using the DataColumn's ColumnName for the Key.
            Dim subItemColumn As UltraListViewSubItemColumn = Me.ultraListView1.SubItemColumns.Add(dataColumn.ColumnName)
            '	Set the UltraListViewSubItemColumn's Text property to the DataColumn's Caption.
            subItemColumn.Text = dataColumn.Caption
            '	Set the UltraListViewSubItemColumn's DataType property to the DataColumn's DataType.
            subItemColumn.DataType = dataColumn.DataType
            '	Hide the columns that the end user does not need to see.
            If subItemColumn.Key = "CustomerID" Or _
              subItemColumn.Key = "ShipName" Or _
              subItemColumn.Key = "ShipAddress" Or _
              subItemColumn.Key = "ShipCity" Or _
              subItemColumn.Key = "ShipRegion" Or _
              subItemColumn.Key = "ShipPostalCode" Or _
              subItemColumn.Key = "ShipCountry" Then
                subItemColumn.VisibleInDetailsView = DefaultableBoolean.False
                subItemColumn.VisibleInTilesView = DefaultableBoolean.False
            End If
            '	Assign the employees ValueList to the 'EmployeeID' column.
            If subItemColumn.Key = "EmployeeID" Then subItemColumn.ValueList = employeesValueList
            '	Assign the shippers ValueList to the 'ShipVia' column.
            If subItemColumn.Key = "ShipVia" Then subItemColumn.ValueList = shippersValueList
            '	Allow the UltraListViewSubItemColumn to be moved
            subItemColumn.AllowMoving = DefaultableBoolean.True
            '	Allow the UltraListViewSubItemColumn to be resized
            subItemColumn.AllowSizing = DefaultableBoolean.True
            '	Allow the UltraListViewSubItemColumn to be sorted
            subItemColumn.AllowSorting = DefaultableBoolean.True
            '	Set the FormatProvider to null so that the current culture is used.
            subItemColumn.FormatProvider = Nothing
            '	Set some UltraListViewSubItemColumn properties based the data type
            If subItemColumn.DataType Is GetType(System.DateTime) Then
                '	Use the current culture's ShortDatePattern to format dates
                subItemColumn.Format = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern
                '	Customize the NullText for this data type.
                subItemColumn.NullText = "(No Date Set)"
            ElseIf subItemColumn.DataType Is GetType(System.Decimal) Then
                '	Since the currency values are expressed in US dollars, assign
                '	a currency format that is appropriate for that currency system,
                '	and assign 'English - United States' to the FormatProvider property.
                subItemColumn.Format = "$#,###,###.00"
                subItemColumn.FormatProvider = System.Globalization.CultureInfo.CreateSpecificCulture("en-US")
                '	Customize the NullText for this data type.
                subItemColumn.NullText = "(No Amount Set)"
                '	Right-align the text for this column
                subItemColumn.SubItemAppearance.TextHAlign = HAlign.Right
                '	Use the SubItemAppearance's ForeColor property to customize the
                '	color of text for this column.
                subItemColumn.SubItemAppearance.ForeColor = Color.Green
            End If
            '	Assign a reference to the DataColumn to the UltraListViewSubItemColumn's
            '	Tag property.
            subItemColumn.Tag = dataColumn
skip:
        Next
    End Sub