WPF DataGrid: Comment faire pour effacer la sélection par programmation?
C'est une tâche simple dans une autre grille, mais je ne peux pas le faire passer dans WPF DataGrid. Il y a UnselectAll ou UnselectAllCells méthodes, mais ne fonctionnent pas. Aussi, SelectedItem = null ou SelectedIndex = -1 ne fonctionnent pas non plus.
Il y a un post ici sur désactiver complètement la sélection, mais ce n'est pas ce que je veux. Je veux juste effacer la sélection en cours (le cas échéant) et de définir une nouvelle sélection par programmation.
OriginalL'auteur newman | 2010-10-07
Vous devez vous connecter pour publier un commentaire.
Pour les lignes de mode
OriginalL'auteur Evalds Urtans
Pour effacer la sélection en cours, vous pouvez utiliser ce code (comme vous le voyez il est différent si le mode est Simple ou Étendu)
Pour sélectionner de nouveaux éléments par programmation, utilisez ce code:
Oui, mon code précédent n'était pas correct. Je fixe ma réponse.
Je ne sais pas si j'ai fait quelque chose de mal, mais ce nouveau code pour la compensation de la sélection ne fonctionne pas pour moi non plus. Je suis en utilisant ce code dans MouseDoubleClick événement.
Pour mon cas, j'ai trouvé une solution de contournement: La sélection disparaît lorsque j'actualise le datacontext en appelant "Répartiteur.BeginInvoke(DispatcherPriority.Arrière-plan, une nouvelle Action(() => grille.Éléments.Refresh()));"
Ma réponse était il y a longtemps et je ne m'en souviens pas. Mais mon code si-sinon combinaison qui utilise soit
SelectedItems.Clear
ouSelectedItem = null
selon le mode de sélection. Si de nouveaux SelectionMode valeurs apparaissent, je pense que c'if-else doit être réécrit.OriginalL'auteur vorrtex
La désactivation et la réactivation de la grille de données a fonctionné pour moi.
OriginalL'auteur Ken Budris
Cela fonctionne pour moi.
OriginalL'auteur Dunc