Comment masquer le sélecteur de ligne wpf datagrid

108

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 de sélection grise sur le côté gauche. Cela ruine également la beauté de mon design.

Existe-t-il un moyen de le supprimer, ou comment puis-je le styliser pour qu'il corresponde sinon?

Tim Amande
la source

Réponses:

149

Utilisez la RowHeaderWidthpropriété:

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

Notez que vous pouvez également spécifier un style ou un modèle pour celui-ci, si vous décidez que vous l'aimez vraiment et que vous souhaitez le conserver car vous pouvez faire quelque chose de cool avec lui.

slugster
la source
1
pour une raison quelconque, je n'ai trouvé cela nulle part. Sentez-vous un peu "doh!" maintenant, mais merci.
Tim Almond
30
La réponse de user556009 est la bonne réponse pour cela. Ie set HeadersVisibility = "Column"
Sameera
6
@scorpion: définir uniquement HeadersVisibility = "Column" entraînera le décalage horizontal de certains en-têtes de colonne par rapport au contenu de la cellule. Définir à la fois HeadersVisibility = "Column" et RowHeaderWidth = "0" (ou juste le dernier) résout ce problème.
Jarek Kardas
1
@JarekKardas C'était mon cas. J'ai joué avec différentes valeurs HeadersVisibility et RowHeaderWidth et je ne peux pas me débarrasser du décalage. Ensuite, je laisse seulement HeadersVisibility = "Column" et je viens de nettoyer et reconstruire la solution et le décalage est parti. Après cela, HeadersVisibility = "Column" suffisait.
Alex34758
233

Au lieu de définir la largeur, vous pouvez masquer complètement les en-têtes de ligne en définissant sur le DataGrid

HeadersVisibility="Column"
George Mavritsakis
la source
3
gridView.HeadersVisibility = DataGridHeadersVisibility.Column;
George Mavritsakis
2
Si quelqu'un veut supprimer tous les en-têtes:HeadersVisibility="None"
Tim Pohlmann
2

Pour supprimer l'en-tête de ligne (champ gris) dans Datagrid dans WPF

<DataGrid x:Name="TrkDataGrid" HeadersVisibility="Column">
</DataGrid>

Pour supprimer ou masquer l'en-tête de colonne dans DataGrid WPF

<DataGrid x:Name="TrkDataGrid" HeadersVisibility="Row">
</DataGrid>

Pour supprimer ou masquer à la fois l'en-tête de colonne et de ligne dans DataGrid WPF

<DataGrid x:Name="TrkDataGrid" HeadersVisibility="None">
</DataGrid>
Maghalakshmi Saravana
la source
Essaye ça. C'est utile
Maghalakshmi Saravana le
Que la réponse à cette question mérite
Orace
0

Avait le même problème.

On dirait que RowHeaderWidth n'est pas pris en charge en XAML MAIS vous pouvez spécifier dans le code juste après la liaison et il supprime cette colonne de sélecteur de merde.

grdName.RowHeaderWidth = 0

Frank Kotulak
la source