DataControlBase.ColumnsSource Property
Gets or sets the source from which the grid generates columns. This is a dependency property.
Namespace: DevExpress.Xpf.Grid
Assembly: DevExpress.Xpf.Grid.v24.2.Core.dll
NuGet Package: DevExpress.Wpf.Grid.Core
Declaration
Property Value
Type | Description |
---|---|
IEnumerable | The source from which the grid generates columns. |
Remarks
You can define columns in a ViewModel and display them in the GridControl. To do this, follow the steps below:
- Create a collection of grid columns in a ViewModel.
Specify a data template that generates columns:
<Window.Resources> <DataTemplate x:Key="DefaultColumnTemplate"> <dxg:GridColumn FieldName="{Binding Path=(dxci:DependencyObjectExtensions.DataContext).FieldName, RelativeSource={RelativeSource Self}}"/> </DataTemplate> </Window.Resources>
Assign the column collection to the ColumnsSource property and the column template to the ColumnGeneratorTemplate property:
<dxg:GridControl ... ColumnsSource="{Binding Columns}" ColumnGeneratorTemplate="{StaticResource DefaultColumnTemplate}"/>
When you reorder columns in the GridControl, the order of items in the collection bound to the ColumnsSource property does not change. Use the BaseColumn.VisibleIndex property to get column positions and process them in your collection.
You can define a collection of GridColumn objects and assign it to the ColumnsSource
property. In this case:
- If the ColumnGeneratorStyle, ColumnGeneratorTemplate, or ColumnGeneratorTemplateSelector property is not specified, the GridControl displays columns from the collection.
- If the ColumnGeneratorStyle, ColumnGeneratorTemplate, or ColumnGeneratorTemplateSelector property is specified, the GridControl uses this property to generate columns. Objects from the collection become data contexts of the generated columns.
Refer to the following help topic for more information: How to: Bind the Grid to a Collection of Columns.
Related GitHub Examples
The following code snippets (auto-collected from DevExpress Examples) contain references to the ColumnsSource property.
Note
The algorithm used to collect these code examples remains a work in progress. Accordingly, the links and snippets below may produce inaccurate results. If you encounter an issue with code examples below, please use the feedback form on this page to report the issue.