WPF DataGrid Supprimer SelectedItems
Récemment, j'ai travaillé sur un projet qui importe des données programmicaly en WPF DataGrid.
Je suis presque fini avec le projet, mais la chose que j'ai laissé de côté a été un bouton pour supprimer les cellules sélectionnées et c'est là que je suis bloqué!
J'ai écrit ce code à l'aide de mes connaissances de base de composants Datagrid:
var grid = dataGrid1;
if (grid.SelectedIndex >= 0)
{
for (int i = 0; i <= grid.SelectedItems.Count; i++)
{
grid.Items.Remove(grid.SelectedItems[i]);
};
}
Fonctionne très bien sur le retrait seulement l'élément sélectionné comme CurrentItem mais elle ne supprime pas plus que 2 éléments sélectionnés!
Le DataGrid j'ai doit au moins contenir un minimum de 100 articles. J'ai ajouté une option supprimer tout mais c'est aussi nécessaire.
Je serai reconnaissant si quelqu'un me donne la solution.
OriginalL'auteur Schahriar SaffarShargh | 2011-06-18
Vous devez vous connecter pour publier un commentaire.
Par la suppression de l'élément sélectionné, vous sont en train de changer
SelectedItems
collection. Vous devez copier d'abord, puis de commencer à retirer.OriginalL'auteur Piotr Auguscik
Cela a également bien fonctionné pour moi.
OriginalL'auteur Richard C
L'erreur que vous faites ici, vous êtes en train de supprimer des éléments au cours de la boucle whaich est de jouer avec la boucle de comte pour faire une copie de la grille et retirez selecteditem d'elle et puis equlize par l'orignal..
Check this out
Cela ne fait rien car
grid
etmygrid
sont les mêmesDataGrid
.OriginalL'auteur Syeda
Cela a fonctionné pour moi...
OriginalL'auteur user721807
Cela a fonctionné pour moi...
OriginalL'auteur iappz
Une boucle while l'aide de la SelectedItem au lieu de la SelectedIndex
OriginalL'auteur Guish
J'ai pile le même problème que l'auteur. Et trouvé très beau (je pense) de la solution.
Et ainsi, le principal problème est que le SelectedItems dynamique, et lorsque vous supprimez une ligne, il est recalculé à nouveau.
Et donc mon code ressemble à ceci:
Donc, chaque fois que la boucle est en train de faire l'étape 1, datagrid1.SelectedItems.Le comte est diminué de 1, et la variable i augmente.
OriginalL'auteur nast90210
OriginalL'auteur Алексей Юрченко