DataGrid.AutoGeneratingColumn Event

Occurs when an individual column is auto-generated.

Namespace:  System.Windows.Controls
Assembly:  PresentationFramework (in PresentationFramework.dll)
XMLNS for XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

'Declaration
Public Event AutoGeneratingColumn As EventHandler(Of DataGridAutoGeneratingColumnEventArgs)
<object AutoGeneratingColumn="EventHandler<DataGridAutoGeneratingColumnEventArgs>" .../>

You can change or cancel the column being created in the AutoGeneratingColumn event handler.

When all columns are auto-generated, the AutoGeneratedColumns event occurs.

The following example shows how to auto-generate columns and change the columns at creation time in the AutoGeneratingColumn event handler.

<!-- The DataGrid.DataContext is a DataTable that contains a list of customers.  The DataTable columns are  
     Title, FirstName, MiddleName, LastName, Suffix, CompanyName, EmailAddress, and Phone.-->
<DataGrid Name="DG1" ItemsSource="{Binding}" AutoGenerateColumns="True" AutoGeneratingColumn="DG1_AutoGeneratingColumn" />
'Access and update columns during autogeneration 
Private Sub DG1_AutoGeneratingColumn(ByVal sender As Object, ByVal e As DataGridAutoGeneratingColumnEventArgs)
    Dim headername As String = e.Column.Header.ToString()
    'Cancel the column you don't want to generate 
    If headername = "MiddleName" Then
        e.Cancel = True 
    End If 

    'update column details when generating 
    If headername = "FirstName" Then
        e.Column.Header = "First Name" 
    ElseIf headername = "LastName" Then
        e.Column.Header = "Last Name" 
    ElseIf headername = "EmailAddress" Then
        e.Column.Header = "Email" 
    End If 
End Sub

.NET Framework

Supported in: 4.6, 4.5, 4

.NET Framework Client Profile

Supported in: 4
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2015 Microsoft