Modifier la couleur d’arrière-plan de la colonne entière de WPF DataGrid au moment de l’exécution

Tous, je suis relativement nouveau à WPF. J’ai cherché la réponse, mais tout ce que j’ai trouvé, c’est comment coloriser les lignes au moment de l’exécution, pas les colonnes; par exemple les questions suivantes:

  1. Modifier la couleur de la ligne de la grid de données WPF

  2. Comment modifier par programme la couleur des lignes de la grid de données dans WPF?

  3. Assigner par programme une couleur à une ligne dans DataGrid

  4. Modifier la couleur de la cellule DataGrid en fonction des valeurs

et al.

J’ai vu la propriété CellStyle sur les pages MSDN DataGrid mais son utilisation ne m’est pas du tout évidente malgré les recherches sur ce sujet également.

Comment changer la couleur de fond d’une colonne entière au moment de l’exécution?

Merci pour votre temps.

Le seul moyen de le faire fonctionner est de définir les colonnes par moi-même (en n’utilisant pas AutoGenerate). La première chose à faire est donc de définir les colonnes:

         

Ensuite, vous devez définir chaque colonne CellStyle et lier l’arrière-plan à une ressource statique que vous pouvez déclarer sur Window.Resources:

     ... 

Colonnes:

       

alors vous pouvez simplement manipuler la ressource statique par le code ou par la manipulation xaml.

J’espère que ça aide.

Un peu vieux, mais voici comment vous pouvez le faire par programme (pour les colonnes AutoGen):

 private void dgvMailingList_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e) { e.Column.CellStyle = new Style(typeof(DataGridCell)); e.Column.CellStyle.Setters.Add(new Setter(DataGridCell.BackgroundProperty, new SolidColorBrush(Colors.LightBlue))); } 

La même approche peut également être appliquée aux colonnes non-AutoGen.