2009-11-02 1 views
3

Contexte J'ai une collection personnalisée qui est binded au datagridviewComment piéger une ligne de suppression (à partir du clavier) dans datagridview?

this.datagridview.DataSource = MaCollection

J'ai un bouton de suppression de l'interface utilisateur. L'utilisateur peut cliquer sur le bouton Supprimer pour supprimer le répertoire DX sélectionné.

Certains entrés ne peuvent pas être supprimés, donc je Activer et désactiver le "bouton Supprimer".

Cela fonctionne très bien au cas où l'utilisateur supprime l'entrée en cliquant sur le bouton de suppression.

Le problème est:

Lorsque l'utilisateur appuie sur le bouton « Supprimer » du « clavier »

Comment piège carte clé bouton « Supprimer » .. Lorsque je presse supprimer le bouton de le clavier:

--il supprime une ligne sélectionnée de la vue DataGrid .. --Quand utilisateur cliquez sur enregistrer .. il enregistre aussi en Xml et ..

Pour corriger cela, je l'ai traité événement _RowRemoved de vue DataGrid .. mais encore aucune aide

S'il vous plaît Aide

+0

WPF ou WinForms? –

+0

c'est un WinForms –

Répondre

11

Joindre à l'événement UserDeletingRow et annuler la suppression (si nécessaire) en mettant e.Cancelled = true

+1

Merci pour votre aide Rob !! –

0

puisque vous avez un bouton qui gère quand ils peuvent « supprimer » vous pouvez simplement définir:

CanUserDeleteRows="false" 

droit dans le DataGrid dans le XAML. Cela ne fait que les empêcher d'utiliser la touche "supprimer" (votre bouton fonctionne toujours), ce qui les oblige à supprimer avec votre bouton. Si vous souhaitez qu'ils puissent également utiliser la touche "Supprimer" (le cas échéant), vous devez joindre l'événement UserDeletingRow et gérer l'annulation lorsqu'il n'est pas approprié de supprimer.

Questions connexes