gpt4 book ai didi

c# - 通过单击删除键按钮删除 DataGrid 行 (WPF)

转载 作者:太空狗 更新时间:2023-10-30 00:09:01 27 4
gpt4 key购买 nike

我有 WPF 4 基于桌面的应用程序。在此应用程序的一个窗口中,我有包含数据的 DataGrid,与 SQL Server 数据库绑定(bind)(通过 ADO.NET Entity Framework )。为了操作数据,我有一个删除按钮,它从 DataGrid 中删除选定的行并调用 SaveChanges() 方法。

现在我想添加对键盘操作的支持,例如我想让用户通过选择并单击删除键盘按钮来删除该行。

如果我在窗口 XAML 中设置 CanUserDeleteRows="True",它会删除选定的行但不会提交到数据库,换句话说,它不会调用 SaveChanges() 方法。

我尝试将 keyDown 事件处理程序添加到 DataGrid 检查 if (e.Key == Key.Delete),所以运行删除删除所选行并调用 SaveChanges() 方法的方法,但它不起作用。

如何将键盘事件处理程序添加到 DataGrid

目的是能够删除选定的行并调用 SaveChanges() 方法或只运行我自己的方法,处理从 DataGrid 中删除行并提交到 DB .

当然,如果您对我的问题有任何其他想法,请随时提出。

最佳答案

您是否尝试过 PreviewKeyDown 事件?像这样

<DataGrid x:Name="dataGrid" PreviewKeyDown="dataGrid_PreviewKeyDown">

private void dataGrid_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Delete)
{
var dataGrid = (DataGrid)sender;
// dataGrid.SelectedItems will be deleted...
//...
}
}

关于c# - 通过单击删除键按钮删除 DataGrid 行 (WPF),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4003881/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com