DataGrid.Columns 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
DataGrid의 모든 열을 포함하는 컬렉션을 가져옵니다.
public:
property System::Collections::ObjectModel::ObservableCollection<System::Windows::Controls::DataGridColumn ^> ^ Columns { System::Collections::ObjectModel::ObservableCollection<System::Windows::Controls::DataGridColumn ^> ^ get(); };
public System.Collections.ObjectModel.ObservableCollection<System.Windows.Controls.DataGridColumn> Columns { get; }
member this.Columns : System.Collections.ObjectModel.ObservableCollection<System.Windows.Controls.DataGridColumn>
Public ReadOnly Property Columns As ObservableCollection(Of DataGridColumn)
속성 값
DataGrid에 있는 열의 컬렉션입니다.
예제
다음 예제에서는 컬렉션에 열을 추가하는 방법을 보여줍니다.
<!-- ItemsSource is a DataTable that contains a list of customers. The DataTable columns are
Title, FirstName, MiddleName, LastName, Suffix, CompanyName, EmailAddress, and Phone.-->
<DataGrid Grid.Row="2" Name="DG2" ItemsSource="{Binding}" AutoGenerateColumns="False" />
public Window1()
{
Public Sub New()
//Create a new column to add to the DataGrid
DataGridTextColumn textcol = new DataGridTextColumn();
//Create a Binding object to define the path to the DataGrid.ItemsSource property
//The column inherits its DataContext from the DataGrid, so you don't set the source
Binding b = new Binding("LastName");
//Set the properties on the new column
textcol.Binding = b;
textcol.Header = "Last Name";
//Add the column to the DataGrid
DG2.Columns.Add(textcol);
}
'Create a new column to add to the DataGrid
Dim textcol As New DataGridTextColumn()
'Create a Binding object to define the path to the DataGrid.ItemsSource property
'The column inherits its DataContext from the DataGrid, so you don't set the source
Dim b As New Binding("LastName")
'Set the properties on the new column
textcol.Binding = b
textcol.Header = "Last Name"
'Add the column to the DataGrid
DG2.Columns.Add(textcol)
End Sub
다음 예제에서는 컬렉션에서 열을 제거하는 방법을 보여줍니다.
<Button Content="Delete First Column" Click="Button_Click" />
<!-- ItemsSource is a DataTable that contains a list of customers. The DataTable columns are
Title, FirstName, MiddleName, LastName, Suffix, CompanyName, EmailAddress, and Phone.-->
<DataGrid Grid.Row="1" Name="DG1" ItemsSource="{Binding}" AutoGeneratingColumn="DG1_AutoGeneratingColumn" />
private void Button_Click(object sender, RoutedEventArgs e)
{
//Delete the first column whether visible or not
DG1.Columns.RemoveAt(0);
}
Private Sub Button_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
'Delete the first column whether visible or not
DG1.Columns.RemoveAt(0)
End Sub
다음 예제에서는 컬렉션의 열이 자동으로 생성될 때 및 이벤트가 발생할 때 열의 속성을 설정하는 방법을 보여 줍니다.
<CheckBox Content="View Customer Details" Checked="CheckBox_Checked" Unchecked="CheckBox_Unchecked" />
<!-- ItemsSource is a DataTable that contains a list of customers. The DataTable columns are
Title, FirstName, MiddleName, LastName, Suffix, CompanyName, EmailAddress, and Phone.-->
<DataGrid Grid.Row="1" Name="DG1" ItemsSource="{Binding}" AutoGeneratingColumn="DG1_AutoGeneratingColumn" />
private void DG1_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
//Set properties on the columns during auto-generation
switch (e.Column.Header.ToString())
{
case "LastName":
e.Column.CanUserSort = false;
e.Column.Visibility = Visibility.Visible;
break;
case "FirstName":
e.Column.Visibility = Visibility.Visible;
break;
case "CompanyName":
e.Column.Visibility = Visibility.Visible;
break;
case "EmailAddress":
e.Column.Visibility = Visibility.Visible;
break;
default:
e.Column.Visibility = Visibility.Collapsed;
break;
}
}
private void CheckBox_Checked(object sender, RoutedEventArgs e)
{
//Make each column in the collection visible
foreach (DataGridColumn col in DG1.Columns)
{
col.Visibility = Visibility.Visible;
}
}
private void CheckBox_Unchecked(object sender, RoutedEventArgs e)
{
//Get the columns collection
ObservableCollection<DataGridColumn> columns = DG1.Columns;
//set the visibility for each column so only 4 columns are visible
foreach (DataGridColumn col in columns)
{
switch (col.Header.ToString())
{
case "LastName":
col.Visibility = Visibility.Visible;
break;
case "FirstName":
col.Visibility = Visibility.Visible;
break;
case "CompanyName":
col.Visibility = Visibility.Visible;
break;
case "EmailAddress":
col.Visibility = Visibility.Visible;
break;
default:
col.Visibility = Visibility.Collapsed;
break;
}
}
}
Private Sub DG1_AutoGeneratingColumn(ByVal sender As Object, ByVal e As DataGridAutoGeneratingColumnEventArgs)
'Set properties on the columns during auto-generation
Select Case e.Column.Header.ToString()
Case "LastName"
e.Column.CanUserSort = False
e.Column.Visibility = Visibility.Visible
Exit Select
Case "FirstName"
e.Column.Visibility = Visibility.Visible
Exit Select
Case "CompanyName"
e.Column.Visibility = Visibility.Visible
Exit Select
Case "EmailAddress"
e.Column.Visibility = Visibility.Visible
Exit Select
Case Else
e.Column.Visibility = Visibility.Collapsed
Exit Select
End Select
End Sub
Private Sub CheckBox_Checked(ByVal sender As Object, ByVal e As RoutedEventArgs)
'Make each column in the collection visible
For Each col As DataGridColumn In DG1.Columns
col.Visibility = Visibility.Visible
Next
End Sub
Private Sub CheckBox_Unchecked(ByVal sender As Object, ByVal e As RoutedEventArgs)
'Get the columns collection
Dim columns As ObservableCollection(Of DataGridColumn) = DG1.Columns
'set the visibility for each column so only 4 columns are visible
For Each col As DataGridColumn In columns
Select Case col.Header.ToString()
Case "LastName"
col.Visibility = Visibility.Visible
Exit Select
Case "FirstName"
col.Visibility = Visibility.Visible
Exit Select
Case "CompanyName"
col.Visibility = Visibility.Visible
Exit Select
Case "EmailAddress"
col.Visibility = Visibility.Visible
Exit Select
Case Else
col.Visibility = Visibility.Collapsed
Exit Select
End Select
Next
End Sub
설명
Columns 컬렉션을 사용하여 열을 추가하거나, 열을 제거하거나, 열의 속성을 업데이트할 수 있습니다.
참고
컬렉션의 열 순서에 따라 열이 에 표시되는 순서가 DataGrid결정되지 않습니다. 속성은 DisplayIndex 열 순서를 결정합니다.
컬렉션DataGrid의 각 열은 Columns . 다음 표에서는 제공하는 네 가지 열 형식을 DataGrid 나열합니다.
열 유형 | 데이터 표시 |
---|---|
DataGridHyperlinkColumn | URI 데이터를 표시 하려면이 옵션을 사용 합니다. |
DataGridComboBoxColumn | 열거형 데이터를 표시 하려면이 옵션을 사용 합니다. |
DataGridTextColumn | 텍스트를 표시 하려면이 옵션을 사용 합니다. |
DataGridCheckBoxColumn | 부울 데이터를 표시 하려면이 옵션을 사용 합니다. |
또한 .을 사용하여 DataGridTemplateColumn사용자 지정 열을 정의할 수 있습니다. 컬렉션의 열은 .에서 DataGridColumn파생되어야 합니다. DataGridBoundColumn바인딩 DataGridColumn 에 대한 지원을 추가하는 것은 정의된 여러 열 형식의 기반이 되며 파생됩니다.
컬렉션의 모든 열은 .에서 정의한 DataGrid속성을 사용합니다ItemsSource.
생성된 열이 Columns 포함되어 있는지 여부에 관계없이 런타임에 컬렉션을 수정할 수 있습니다.