Поделиться через


DataGrid.AutoGenerateColumns Свойство

Определение

Получает или задает значение, указывающее, создаются ли столбцы автоматически.

public:
 property bool AutoGenerateColumns { bool get(); void set(bool value); };
public bool AutoGenerateColumns { get; set; }
member this.AutoGenerateColumns : bool with get, set
Public Property AutoGenerateColumns As Boolean

Значение свойства

Значение true, если столбцы создаются автоматически; в противном случае — значение false. Зарегистрированное значение по умолчанию — true. Дополнительные сведения о факторах, которые влияют на данное значение, см. в описании объекта DependencyProperty.

Примеры

В следующем примере показано, как автоматически создавать столбцы и изменять их во время создания в обработчике AutoGeneratingColumn событий.

<!-- 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 void DG1_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
    string headername = e.Column.Header.ToString();

    //Cancel the column you don't want to generate
    if (headername == "MiddleName")
    {
        e.Cancel = true;
    }

    //update column details when generating
    if (headername == "FirstName")
    {
        e.Column.Header = "First Name";
    }
    else if (headername == "LastName")
    {
        e.Column.Header = "Last Name";
    }
    else if (headername == "EmailAddress")
    {
        e.Column.Header = "Email";
    }
}
'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

Комментарии

При установке AutoGenerateColumns значения true или false создаются или удаляются автоматически созданные столбцы. Если свойству AutoGenerateColumns присвоено значение true, AutoGeneratingColumn событие будет вызываться для каждого создаваемого столбца. Вы можете изменить или отменить столбец, создаваемый в обработчике AutoGeneratingColumn событий.

После завершения AutoGeneratedColumns автоматического создания всех столбцов возникает событие .

Примечание

DataGrid Не удается автоматически создавать столбцы, если источником являются XML-данные. В этом случае создайте пользовательскую Columns коллекцию. Пример см. в разделе DataGridTextColumn.

Применяется к

См. также раздел