Valeur de cellule WPF Datagrid sélectionnée
Je veux obtenir la valeur de la cellule sélectionnée dans la grille de données , veuillez-on dire comment faire cela. j'ai utilisé SelectedCell événement a changé , comment puis-je le faire?
dataGrid1.CurrentCell
source d'informationauteur Abdulsalam Elsharif | 2013-10-07
Vous devez vous connecter pour publier un commentaire.
Veuillez vous référer à la La Classe DataGrid page sur MSDN. À partir de cette page:
J'ai ajouté des liens vers les propriétés pertinentes pour vous, mais je n'ai pas le temps maintenant, j'espère que vous pouvez suivre les liens pour obtenir votre solution.
Quand j'ai été confronté à ce problème, j'ai fait comme ceci:
J'ai créé un
DataRowView
, a saisi l'index de colonne, et ensuite utilisé que dans la ligne duItemArray
Si vous sélectionnez une seule cellule, puis sélectionner le contenu d'une cellule comme ce
Ici, le contenu sera votre cellules sélectionnées valeur
Et si vous êtes à la sélection de plusieurs cellules, alors vous pouvez le faire comme ceci
Si
SelectionUnit="Cell"
essayez ceci:Où:
Semble qu'il ne devrait pas être si compliqué que ça, je sais...
Edit: Cela ne semble pas fonctionner sur
DataGridTemplateColumn
colonnes de type. Vous pouvez également essayer cette option si vos lignes sont composées d'une classe personnalisée et vous avez assigné une sorte de membre de chemin:WPF fournit de liaison dans les DataGrids, cela devrait être plutôt transparent. Toutefois, cette méthode ne fonctionne que si vous avez utilisé SQLDataAdapter et a fourni un chemin de liaison à votre DataGridColoumns. Pour eg. Disons au-dessus de la grille de données est nommé grid1, qui a générer automatiquement des colonnes est défini à false, et est à l'aide de la liaison pour lier les noms de colonne d'en-Têtes. Dans ce cas, nous utilisons la 'ligne' de la variable de type 'DataRowView' et de stocker de la ligne sélectionnée. Maintenant, utilisez votre Chemins de Liaison, et de la personne de référence les colonnes de la ligne sélectionnée.
Espérons que cette aide! Cheers!
PS: Fonctionne si SelectionUnit = 'Row'
Ces 2 méthodes qui peuvent être utilisées pour prendre une valeur à partir de la ligne sélectionnée
J'ai eu du mal avec celui-ci pendant un long moment! (À l'aide de VB.NET Fondamentalement, vous obtenez l'index de ligne et de colonne de l'index de la cellule sélectionnée, et ensuite l'utiliser pour accéder à la valeur.
Fin De La Classe
Ok après le fait de faire de l'ingénierie inverse et un peu de poussière de lutin de la réflexion, on peut faire cette opération sur
SelectedCells
(à tout moment) pour obtenir tous (quel que soit sélectionné sur une ligne ou de plusieurs lignes) les données d'une ou plusieurs cellules sélectionnées:J'ai essayé ce texte (chaîne de caractères) champs uniquement si un champ DateTime doit retourner une valeur à l'initié
ToString()
. Notez également queSortMemberPath
n'est pas le même queHeader
ce qui devrait toujours fournir la bonne propriété pour refléter.Je suis l'extension de la solution par Rushi à la suite (ce qui a résolu le casse-tête pour moi)