Supprimer la ligne de grille de données (WPF) en cliquant sur le bouton Supprimer bouton de la clé
J'ai WPF 4 à partir du bureau de l'application. Dans l'une des fenêtres de cette application, j'ai DataGrid
avec des données, collé avec base de données SQL Server (via ADO.NET Entity Framework). Afin de manipuler les données, j'ai un bouton de suppression, qui supprime la ligne sélectionnée à partir DataGrid
et appel SaveChanges()
méthode.
Maintenant, je veux ajouter le support pour clavier manipulations, par exemple, je veux permettre à l'utilisateur de supprimer la ligne en sélectionnant et en cliquant sur Supprimer touche du clavier.
Si j'ai mis CanUserDeleteRows="True"
dans la fenêtre de code XAML, il supprime la ligne sélectionnée, mais ne fait pas s'engager à la base de données, en d'autres termes, il ne demande pas SaveChanges()
méthode.
J'ai essayé d'ajouter keyDown
gestionnaire d'événement pour DataGrid
un chèque if (e.Key == Key.Delete)
, afin d'exécuter supprimer méthode qui supprime la ligne sélectionnée et appel SaveChanges()
méthode, mais ça ne fonctionne pas.
Ma question est comment puis-je ajouter un gestionnaire d'événements clavier à DataGrid
qui permettra de supprimer la ligne sélectionnée et appel SaveChanges()
méthode, ou tout simplement courir ma propre méthode, qui traite de la ligne de retrait de DataGrid
et de faire commettre à DB.
Bien sûr, si vous avez une autre idée, liées à ma question, n'hésitez pas à suggérer.
OriginalL'auteur Mike B. | 2010-10-23
Vous devez vous connecter pour publier un commentaire.
Avez-vous essayé avec le PreviewKeyDown événement? Quelque chose comme ceci
OriginalL'auteur Fredrik Hedblad
Ou vous pouvez utiliser le Gestionnaire de commandes, qui ne supprime la ligne si la ligne est sélectionnée (si une cellule est l'édition, il sauvegarde).
Mettre ceci dans votre Fenêtre où le contrôle Datagrid est situé.
Il devrait être situé dans le windows constructeur
OriginalL'auteur Ben Petersen
Même que Ben mais tout ce qu'on a à faire est d'activer la propriété CanUserDeleteRows par la mise à
true
et le bouton supprimer de suppression active.Comme indiqué ci-dessous dans
XAML
pour laDataGrid
:OriginalL'auteur ΩmegaMan
Je vois que vous avez réussi à aller de l'avant, mais peut-être que ce sera utile pour les autres, voir ce post dans les résultats de recherche.
Vous devez remplacer la OnCanExecuteDelete méthode de la grille de données, comme:
Mais c'est juste pour la manipulation pure graphiques. Pour l'enregistrement dans la base de données ou d'autres actions de l'utilisation de la source de données de votre grille de données.
OriginalL'auteur user3346850