次の方法で共有


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

注釈

を または false に設定AutoGenerateColumnsするとtrue、自動生成された列が作成または削除されます。 プロパティが AutoGenerateColumnstrue設定されている場合、作成される AutoGeneratingColumn 列ごとにイベントが発生します。 イベント ハンドラーで AutoGeneratingColumn 作成されている列を変更または取り消すことができます。

すべての列の自動生成が完了すると、 AutoGeneratedColumns イベントが発生します。

注意

DataGrid ソースが XML データの場合、列を自動生成できません。 この場合は、カスタム コレクションを作成します Columns 。 例については、「DataGridTextColumn」を参照してください。

適用対象

こちらもご覧ください