DataControlBase.ColumnsPopulated Event

Obsolete. Occurs after the columns have been automatically generated.

Namespace: DevExpress.Xpf.Grid

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

Declaration

[Obsolete("Use the AutoGeneratedColumns event instead")]
[Browsable(false)]
public event RoutedEventHandler ColumnsPopulated
<Obsolete("Use the AutoGeneratedColumns event instead")>
<Browsable(False)>
Public Event ColumnsPopulated As RoutedEventHandler

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.

Remarks

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.

Examples

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.

<Window x:Class="E2019.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
        xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
        xmlns:local="clr-namespace:E2019"
        Title="Window" Height="200" Width="470">
    <Window.Resources>
        <local:IssueTypeForegroundConverter x:Key="IssueTypeForegroundConverter"/>
        <DataTemplate x:Key="IssueNameTemplate">
            <dxe:TextEdit x:Name="PART_Editor" Foreground="Blue"/>
        </DataTemplate>
        <DataTemplate x:Key="IssueTypeTemplate">
            <dxe:TextEdit x:Name="PART_Editor" Foreground="{Binding Path=Value, Converter={StaticResource IssueTypeForegroundConverter}}"/>
        </DataTemplate>
    </Window.Resources>
    <Grid>
       <dxg:GridControl x:Name="grid" AutoGenerateColumns="AddNew" AutoGeneratedColumns="OnColumnsGenerated">
          <dxg:GridControl.View>
             <dxg:TableView Name="tableView1" AutoWidth="True" />
          </dxg:GridControl.View>
       </dxg:GridControl>
    </Grid>
</Window>
See Also