Comment puis-je retourner l'index de colonne d'un élément dans un fichier de données WPF lorsque je clique sur une cellule J'utilise Visual Studio 2010 / vb.net P>
5 Réponses :
EG P> datagridcells code> ne pas avoir de clic, ils ont un événement
sélectionné code> mais qui est normalement tiré pour chaque cellule d'une ligne lorsque vous cliquez sur une cellule.
gotfocus code> pourrait être un meilleur choix.
void CellClick(object sender, RoutedEventArgs e)
{
DataGridCell cell = sender as DataGridCell;
MessageBox.Show(cell.Column.DisplayIndex.ToString());
}
Datagrid.columns.indexof (datagridcell.column) donne l'index correct pour trouver la cellule A à l'aide du présentateur (présage.itemcontainergénérer.Containerfromindex (index)) Même lorsque les colonnes ont été déplacées par l'utilisateur, l'indice d'affichage des colonnes ne fait pas
Tout le monde raconte cette solution et oui fonctionne, mais personne ne dit que nous devons définir l'index d'affichage d'abord à chaque colonne, peut-être qu'il est évident que les experts pour obtenir cela, Mais pour les novices, c'est une chose inconnue p> Il existe deux façons de la définir: - P> Vous pouvez la définir dans la partie XAML. P>
p>
li>
ol> Je ne sais pas comment le configurer pour les colonnes personnalisées telles que p> donc j'ai préféré l'inverse p> crée une fonction p>
void privé SetDisplayindexForGridViewColonnes ()
{
Int32 colonnesCount = dt.columns.compte; p>
Int32 columnIndex = dataGridScannedFiles.SelectedCells[0].Column.DisplayIndex;
Vous pouvez utiliser directement le code directement pour obtenir l'index de colonne de cellules sélectionné.
int index = datagrid.SelectedCells[0].Column.DisplayIndex;
Vous avez essayé d'utiliser ceci à l'événement cliquez sur l'index de colonne?
int columnIndex = dataGrid.CurrentColumn.DisplayIndex;
Cela pourrait fonctionner sur les formulaires Win Forms DataGrid, mais pas sur le DataGrid WPF. Ce dernier n'a pas de propriété actuelleColumn.
Cela m'a aidé, fonctionne parfaitement sur WPF DataGrid.
int index = DataGrid.Columns.Single(c => c.Header.ToString() == "Department").DisplayIndex;