113 votes

Comment masquer le sélecteur de ligne d'une grille de données wpf ?

J'utilise le contrôle WPF DataGrid pour afficher certains détails et un bouton de sélection, et je n'ai pas besoin de la colonne grise de sélection sur le côté gauche. De plus, elle gâche la beauté de mon design.

Y a-t-il un moyen de l'enlever, ou comment puis-je le styliser pour qu'il soit assorti sinon ?

246voto

George Mavritsakis Points 2778

Au lieu de définir la largeur, vous pouvez masquer complètement les en-têtes de ligne en définissant sur la grille de données (DataGrid) les paramètres suivants

HeadersVisibility="Column"

3 votes

GridView.HeadersVisibility = DataGridHeadersVisibility.Column ;

3 votes

Si quelqu'un veut enlever tous les en-têtes : HeadersVisibility="None"

0 votes

Cela semble beaucoup plus correct que de fixer la largeur à 0.

159voto

slugster Points 27178

Utilisez le RowHeaderWidth propriété :

<my:DataGrid RowHeaderWidth="0" AutoGenerateColumns="False" Name="dataGrid1" />

Notez que vous pouvez également spécifier un style ou un modèle pour ce dernier, si vous décidez que vous l'aimez vraiment et que vous voulez le garder parce que vous pouvez en faire quelque chose de cool.

1 votes

Pour une raison quelconque, je n'ai pu trouver ça nulle part. Je me sens un peu "doh !" maintenant, mais merci.

34 votes

La réponse de l'utilisateur556009 est la bonne réponse à cette question. Par exemple, définissez HeadersVisibility="Column".

7 votes

@scorpion : en définissant uniquement HeadersVisibility="Column", certains en-têtes de colonnes seront décalés horizontalement par rapport au contenu des cellules. Le fait de définir à la fois HeadersVisibility="Column" et RowHeaderWidth="0" (ou seulement le dernier) résout ce problème.

0voto

Frank Kotulak Points 9

J'ai eu le même problème.

Il semble que la largeur de RowHeaderWidth ne soit pas prise en charge dans XAML MAIS vous pouvez la spécifier dans le code derrière juste après le bind et cela supprime cette colonne de sélection merdique.

grdName.RowHeaderWidth = 0

0voto

Mike Gledhill Points 2105

Aucune de ces solutions n'a fonctionné pour moi dans mon application WPF, et la suggestion la plus récente s'est traduite par une erreur :

myGridView.HeadersVisibility = "Column";

Mais, celui-ci a bien fonctionné :

myGridView.HeadersVisibility = DataGridHeadersVisibility.Column;

-1voto

Vous pouvez masquer complètement votre en-tête de ligne en utilisant

    dataGridView1.RowHeadersVisible = false;

J'utilise C#.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X