windowsforms-114708-controls-and-libraries-data-grid-getting-started-walkthroughs-data-binding-and-working-with-columns-tutorial-working-with-columns-in-code.md
This tutorial addresses the following tasks:
Watch Video: Working with Columns in Code
The application initially contains a Data Grid bound to the sample Northwind database. Refer to the following help topic for information on data binding: Bind the Grid to ADO.NET Data.
The Data Grid generates columns for all data source fields automatically (if the View does not contain any columns). Set the ColumnViewOptionsBehavior.AutoPopulateColumns property to false to disable this behavior.
Note
If you assign a data source in the Data Source Wizard, generated columns persist in the ColumnView.Columns collection. Clear the column collection before you add columns manually.
The following code snippet disables automatic column generation:
public Form1() {
InitializeComponent();
gridView1.OptionsBehavior.AutoPopulateColumns = false;
gridControl1.DataSource = dimProductBindingSource;
}
Public Sub New()
InitializeComponent()
gridView1.OptionsBehavior.AutoPopulateColumns = False
gridControl1.DataSource = dimProductBindingSource
End Sub
Tip
You can use the ColumnView.PopulateColumns method to clear the column collection and generate columns for all data source fields.
Create a GridColumn instance and add it to the ColumnView.Columns collection. Specify the FieldName property to bind the column to a data source field and enable the Visible property to display the column in the view.
public Form1() {
GridColumn colPrice = new GridColumn() {
FieldName = "UnitPrice",
Visible = true,
Caption = "Prices"
};
gridView1.Columns.Add(colPrice);
// Or
// gridView1.Columns.AddVisible("UnitPrice", "Prices");
}
Public Sub New()
Dim colPrice As New GridColumn() With {
.FieldName = "UnitPrice",
.Visible = True,
.Caption = "Prices"
}
gridView1.Columns.Add(colPrice)
' Or
' gridView1.Columns.AddVisible("UnitPrice", "Prices")
End Sub
Tip
The Data Grid allows you to create unbound columns with custom data. See the following help topic for more information: Unbound Columns.
Use the ColumnView.Columns collection to manipulate columns. You can access a column by its index in the collection or data field name.
The following code snippet formats values in the Prices column as currency:
GridColumn colPrice = gridView1.Columns["UnitPrice"];
colPrice.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
colPrice.DisplayFormat.FormatString = "c2";
Dim colPrice As GridColumn = gridView1.Columns("UnitPrice")
colPrice.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric
colPrice.DisplayFormat.FormatString = "c2"
To change the column appearance, use the appearance settings of GridColumn.AppearanceCell and GridColumn.AppearanceHeader properties.
colPrice.AppearanceHeader.ForeColor = Color.Crimson;
colPrice.AppearanceCell.BackColor = Color.LightGoldenrodYellow;
colPrice.AppearanceHeader.ForeColor = Color.Crimson
colPrice.AppearanceCell.BackColor = Color.LightGoldenrodYellow
Create a RepositoryItemSpinEdit instance, add it to the GridControl.RepositoryItems collection, and assign the repository item to the GridColumn.ColumnEdit property.
RepositoryItemSpinEdit spinEdit = new RepositoryItemSpinEdit();
gridControl1.RepositoryItems.Add(spinEdit);
colPrice.ColumnEdit = spinEdit;
Dim spinEdit As New RepositoryItemSpinEdit()
gridControl1.RepositoryItems.Add(spinEdit)
colPrice.ColumnEdit = spinEdit
Tip
Refer to the following help topic for information on cell editors: Edit Data. Create Cell Editors. Validate User Input.
Grid ColumnsDescribes more column features with related code snippets.Column HeaderLists API to customize column header content. See Also