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.