'宣言 Public ReadOnly Property ColumnSettings As UltraTreeColumnSettings
public UltraTreeColumnSettings ColumnSettings {get;}
Imports Infragistics.Win Imports Infragistics.Win.Layout Imports Infragistics.Win.UltraWinTree Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click Dim dataTable As DataTable = Me.GetData() ' Set the ViewStyle property to 'Grid' Me.ultraTree1.ViewStyle = ViewStyle.Grid ' Add a column for each DataColumn in the DataTable to the RootColumnSet's ' Columns collection, using the DataColumn's 'ColumnName' property as the ' key for the corresponding UltraTreeNodeColumn. Dim rootColumnSet As UltraTreeColumnSet = Me.ultraTree1.ColumnSettings.RootColumnSet Dim dataColumn As DataColumn For Each dataColumn In dataTable.Columns Dim column As UltraTreeNodeColumn = rootColumnSet.Columns.Add(dataColumn.ColumnName) ' Store a reference to the underlying DataColumn in the Tag property. column.Tag = dataColumn ' Set AllowMoving to 'AllowAll', so that the end user ' can drag the column to a different location. column.AllowMoving = GridBagLayoutAllowMoving.AllowAll ' Set AllowSorting to True, so that the end user ' can sort the nodes collections associated with ' this column by clicking on its header. column.AllowSorting = DefaultableBoolean.True ' Set AutoSizeMode to 'VisibleNodes', so that the end user ' can auto-size the column by double-clicking on the right ' edge of its header. column.AutoSizeMode = ColumnAutoSizeMode.VisibleNodes ' Set CanShowExpansionIndicator to True for the string columns, ' so that cells in the column can show the expansion indicator ' when the ViewStyle is 'OutlookExpress'. If dataColumn.DataType Is GetType(String) Then column.CanShowExpansionIndicator = DefaultableBoolean.True Else column.CanShowExpansionIndicator = DefaultableBoolean.False End If ' Use the column's CellAppearance to change the color of ' the text displayed by the cells in the 'CompanyName' column. If column.Key = "CompanyName" Then column.CellAppearance.BackColor = Color.LightBlue column.CellAppearance.BackColor2 = Color.CornflowerBlue column.CellAppearance.BackGradientStyle = GradientStyle.Horizontal column.CellAppearance.ForeColor = Color.DarkBlue End If ' Set CellWrapText to False to prevent text from ' wrapping to additional lines. column.CellWrapText = DefaultableBoolean.False ' Set the DataType property to the DataType of the associated DataColumn column.DataType = dataColumn.DataType ' Use an EditorWithText embeddable editor to render the cell data column.Editor = New EditorWithText() ' Format the 'RecordID' column If column.Key = "RecordID" Then column.Format = "00000" End If ' Assign the current culture to the FormatProvider property. column.FormatProvider = System.Globalization.CultureInfo.CurrentCulture ' Set the ForeColor property of the HeaderAppearance column.HeaderAppearance.ForeColor = SystemColors.ControlDark ' Set the NullText property to "[NULL]" column.NullText = "[NULL]" ' Show sort indicators for all columns column.ShowSortIndicators = DefaultableBoolean.True ' Sort the 'CompanyName' column in ascending order If column.Key = "CompanyName" Then column.SortType = SortType.Ascending End If ' Set the Text property of the 'CompanyName' column If column.Key = "CompanyName" Then column.Text = "Company Name" End If Next ' Hide the 'CustomerID' column rootColumnSet.Columns("CustomerID").Visible = False ' Add a node for each DataRow in the table Dim row As DataRow For Each row In dataTable.Rows Dim nodeKey As String = row("CustomerID") Dim node As UltraTreeNode = Me.ultraTree1.Nodes.Add(nodeKey) For Each dataColumn In dataTable.Columns Dim val As Object = row(dataColumn.ColumnName) node.SetCellValue(rootColumnSet.Columns(dataColumn.ColumnName), val) Next Next End Sub Private Function GetData() As DataTable ' Create a DataTable Dim dataTable As DataTable = New DataTable() ' Add some columns dataTable.Columns.Add("RecordID", GetType(Integer)) dataTable.Columns.Add("CustomerID", GetType(String)) dataTable.Columns.Add("CompanyName", GetType(String)) dataTable.Columns.Add("ContactName", GetType(String)) dataTable.Columns.Add("ContactTitle", GetType(String)) ' Add some rows dataTable.Rows.Add(New Object() {1652, "ALFKI", "Alfreds Futterkiste", "Maria Anders", "Sales Representative"}) dataTable.Rows.Add(New Object() {1346, "ANATR", "Ana Trujillo Emparedados y helados", "Ana Trujillo", "Owner"}) dataTable.Rows.Add(New Object() {127, "ANTON", "Antonio Moreno Taquería", "Antonio Moreno", "Owner"}) dataTable.Rows.Add(New Object() {4460, "AROUT", "Around the Horn", "Thomas Hardy", "Sales Representative"}) dataTable.Rows.Add(New Object() {166, "BERGS", "Berglunds snabbköp", "Christina Berglund", "Order Administrator"}) Return dataTable End Function
using Infragistics.Win; using Infragistics.Win.Layout; using Infragistics.Win.UltraWinTree; using System.Diagnostics; private void button1_Click(object sender, System.EventArgs e) { DataTable dataTable = this.GetData(); // Set the ViewStyle property to 'Grid' this.ultraTree1.ViewStyle = ViewStyle.Grid; // Add a column for each DataColumn in the DataTable to the RootColumnSet's // Columns collection, using the DataColumn's 'ColumnName' property as the // key for the corresponding UltraTreeNodeColumn. UltraTreeColumnSet rootColumnSet = this.ultraTree1.ColumnSettings.RootColumnSet; foreach( DataColumn dataColumn in dataTable.Columns ) { UltraTreeNodeColumn column = rootColumnSet.Columns.Add( dataColumn.ColumnName ); // Store a reference to the underlying DataColumn in the Tag property. column.Tag = dataColumn; // Set AllowMoving to 'AllowAll', so that the end user // can drag the column to a different location. column.AllowMoving = GridBagLayoutAllowMoving.AllowAll; // Set AllowSorting to True, so that the end user // can sort the nodes collections associated with // this column by clicking on its header. column.AllowSorting = DefaultableBoolean.True; // Set AutoSizeMode to 'VisibleNodes', so that the end user // can auto-size the column by double-clicking on the right // edge of its header. column.AutoSizeMode = ColumnAutoSizeMode.VisibleNodes; // Set CanShowExpansionIndicator to True for the string columns, // so that cells in the column can show the expansion indicator // when the ViewStyle is 'OutlookExpress'. if ( dataColumn.DataType == typeof(string) ) column.CanShowExpansionIndicator = DefaultableBoolean.True; else column.CanShowExpansionIndicator = DefaultableBoolean.False; // Use the column's CellAppearance to change the color of // the text displayed by the cells in the 'CompanyName' column. if ( column.Key == "CompanyName" ) { column.CellAppearance.BackColor = Color.LightBlue; column.CellAppearance.BackColor2 = Color.CornflowerBlue; column.CellAppearance.BackGradientStyle = GradientStyle.Horizontal; column.CellAppearance.ForeColor = Color.DarkBlue; } // Set CellWrapText to False to prevent text from // wrapping to additional lines. column.CellWrapText = DefaultableBoolean.False; // Set the DataType property to the DataType of the associated DataColumn column.DataType = dataColumn.DataType; // Use an EditorWithText embeddable editor to render the cell data column.Editor = new EditorWithText(); // Format the 'RecordID' column if ( column.Key == "RecordID" ) column.Format = "00000"; // Assign the current culture to the FormatProvider property. column.FormatProvider = System.Globalization.CultureInfo.CurrentCulture; // Set the ForeColor property of the HeaderAppearance column.HeaderAppearance.ForeColor = SystemColors.ControlDark; // Set the NullText property to "[NULL]" column.NullText = "[NULL]"; // Show sort indicators for all columns column.ShowSortIndicators = DefaultableBoolean.True; // Sort the 'CompanyName' column in ascending order if ( column.Key == "CompanyName" ) column.SortType = SortType.Ascending; // Set the Text property of the 'CompanyName' column if ( column.Key == "CompanyName" ) column.Text = "Company Name"; } // Hide the 'CustomerID' column rootColumnSet.Columns["CustomerID"].Visible = false; // Add a node for each DataRow in the table foreach( DataRow row in dataTable.Rows ) { string nodeKey = row["CustomerID"] as string; UltraTreeNode node = this.ultraTree1.Nodes.Add( nodeKey ); foreach( DataColumn dataColumn in dataTable.Columns ) { object val = row[dataColumn.ColumnName]; node.SetCellValue( rootColumnSet.Columns[dataColumn.ColumnName], val ); } } } private DataTable GetData() { // Create a DataTable DataTable dataTable = new DataTable(); // Add some columns dataTable.Columns.Add( "RecordID", typeof(int) ); dataTable.Columns.Add( "CustomerID", typeof(string) ); dataTable.Columns.Add( "CompanyName", typeof(string) ); dataTable.Columns.Add( "ContactName", typeof(string) ); dataTable.Columns.Add( "ContactTitle", typeof(string) ); // Add some rows dataTable.Rows.Add( new object[]{ 1652, "ALFKI", "Alfreds Futterkiste", "Maria Anders", "Sales Representative" } ); dataTable.Rows.Add( new object[]{ 1346, "ANATR", "Ana Trujillo Emparedados y helados", "Ana Trujillo", "Owner" } ); dataTable.Rows.Add( new object[]{ 127, "ANTON", "Antonio Moreno Taquería", "Antonio Moreno", "Owner" } ); dataTable.Rows.Add( new object[]{ 4460, "AROUT", "Around the Horn", "Thomas Hardy", "Sales Representative" } ); dataTable.Rows.Add( new object[]{ 166, "BERGS", "Berglunds snabbköp", "Christina Berglund", "Order Administrator" } ); return dataTable; }