DataControlBase.ColumnsPopulated Event


Use the AutoGeneratedColumns event instead

Occurs after the columns have been automatically generated.

Namespace: DevExpress.Xpf.Grid

Assembly: DevExpress.Xpf.Grid.v21.1.Core.dll


[Obsolete("Use the AutoGeneratedColumns event instead")]
public event RoutedEventHandler ColumnsPopulated

Event Data

The ColumnsPopulated event's data class is RoutedEventArgs. The following properties provide information specific to this event:

Property Description
Handled Gets or sets a value that indicates the present state of the event handling for a routed event as it travels the route.
OriginalSource Gets the original reporting source as determined by pure hit testing, before any possible Source adjustment by a parent class.
RoutedEvent Gets or sets the RoutedEvent associated with this RoutedEventArgs instance.
Source Gets or sets a reference to the object that raised the event.

The event data class exposes the following methods:

Method Description
InvokeEventHandler(Delegate, Object) When overridden in a derived class, provides a way to invoke event handlers in a type-specific way, which can increase efficiency over the base implementation.
OnSetSource(Object) When overridden in a derived class, provides a notification callback entry point whenever the value of the Source property of an instance changes.


If the grid’s DataControlBase.AutoPopulateColumns option is enabled and the GridControl.Columns collection is empty, binding the grid to a data source automatically generates columns for all data source fields. After all columns have been created and added to the GridControl.Columns collection, the grid fires the ColumnsPopulated event. Handle this event to specify column settings (e.g. assign column editors, hide individual columns, etc.).

The ColumnsPopulated event is not raised if the grid columns are explicitly specified (for instance, in the XAML file), or the DataControlBase.AutoPopulateColumns property is set to false.


The following example shows how to customize automatically generated columns.In this example, the ColumnsPopulated event is handled to hide the 'ID' column, and specify the sorting order of the first visible column.Starting with version 2013 vol 1 the GridControl.ColumnsPopulated event is marked as obsolete. The GridControl.AutoGeneratedColumns event should be used instead. Moreover, in 13.1, this example includes two ways for setting templates in code-behind.

View Example

<Window x:Class="E2019.Window1"
        Title="Window" Height="200" Width="470">
        <local:IssueTypeForegroundConverter x:Key="IssueTypeForegroundConverter"/>
        <DataTemplate x:Key="IssueNameTemplate">
            <dxe:TextEdit x:Name="PART_Editor" Foreground="Blue"/>
        <DataTemplate x:Key="IssueTypeTemplate">
            <dxe:TextEdit x:Name="PART_Editor" Foreground="{Binding Path=Value, Converter={StaticResource IssueTypeForegroundConverter}}"/>
       <dxg:GridControl x:Name="grid" AutoGenerateColumns="AddNew" AutoGeneratedColumns="OnColumnsGenerated">
             <dxg:TableView Name="tableView1" AutoWidth="True" />
See Also