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.