語言

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 事件會被觸發。

Note

DataGrid 當來源為 XML 資料時,無法自動產生欄位。 在這種情況下,建立一個自訂 Columns 收藏。 如需範例,請參閱 DataGridTextColumn。

適用於

另請參閱