Dans ma base de données WPF, je capture la clé "delete", la traite, puis la grille de données elle-même supprime la ligne de l'interface utilisateur en continuant à gérer son propre gestionnaire pour la suppression (ce que je veux).Dans WPF, comment puis-je annuler la touche après l'avoir traitée avec PreviewKeyDown?
Mais maintenant, je veux CTRL-S pour ouvrir une barre de recherche, ce qu'il fait, mais il va aussi sur blanc la cellule l'utilisateur était quand il appuie sur CTRL-S, donc je suis à la recherche pour indiquer à la grille de données d'annuler la touche, appuyez sur afin qu'elle ne soit pas exécutée sur la grille de données. Comment puis-je annuler une pression de touche comme celle-ci?
XAML:
<toolkit:DataGrid x:Name="TheDataGrid" DockPanel.Dock="Bottom"
CanUserAddRows="False"
AlternatingRowBackground="#ddd"
CanUserSortColumns="true"
PreviewKeyDown="TheDataGrid_PreviewKeyDown"
AutoGenerateColumns="False"
RowEditEnding="TheDataGrid_RowEditEnding">
code-behind:
private void TheDataGrid_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (Keyboard.IsKeyDown(Key.LeftCtrl) && Keyboard.IsKeyDown(Key.S))
{
ShowSearchBar();
}
switch (e.Key)
{
case Key.Delete:
DeleteCustomer(sender, e);
break;
}
}