DataGrid.Columns Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient une collection qui contient toutes les colonnes de 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)
Valeur de propriété
Collection de colonnes dans le DataGrid.
Exemples
L’exemple suivant montre comment ajouter une colonne à la collection.
<!-- 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
L’exemple suivant montre comment supprimer une colonne de la collection.
<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
L’exemple suivant montre comment définir des propriétés sur des colonnes de la collection lorsqu’elles sont générées automatiquement et lorsqu’un événement se produit.
<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
Remarques
Utilisez la Columns collection pour ajouter des colonnes, supprimer des colonnes ou mettre à jour des propriétés sur les colonnes.
Notes
L’ordre des colonnes de la collection ne détermine pas l’ordre qu’ils apparaîtront dans le DataGrid. La DisplayIndex propriété détermine l’ordre des colonnes.
Chaque colonne de la Columns collection définit une colonne dans le DataGrid. Le tableau suivant répertorie les quatre types de colonnes que le DataGrid fournit.
Type de colonne | Affichage des données |
---|---|
DataGridHyperlinkColumn | Permet d’afficher les données d’URI. |
DataGridComboBoxColumn | Permet d’afficher les données d’énumération. |
DataGridTextColumn | Permet d’afficher du texte. |
DataGridCheckBoxColumn | Permet d’afficher des données booléennes. |
En outre, vous pouvez définir votre propre colonne personnalisée à l’aide DataGridTemplateColumnde . Les colonnes de la collection doivent dériver de DataGridColumn. Notez que DataGridBoundColumn, ce qui ajoute la prise en charge de la liaison, dérive et DataGridColumn est la base de plusieurs types de colonnes définis.
Toutes les colonnes de la collection utilisent la ItemsSource propriété définie par le DataGrid.
Vous pouvez modifier la collection au moment de l’exécution Columns , qu’elle contienne des colonnes générées.