[在DataGrid中使用交互性EventName = PreviewKeyDown时如何捕获XAML中按下的键?

问题描述 投票:1回答:1

我有一个其中包含许多行的DataGrid。我想捕获一个或多个键盘键,并根据所按的键执行相应的代码。我希望用户能够执行CTRL-D来删除行或按DELETE键。我还需要将DataGrid元素作为参数传递给所调用的代码。这是我在XAML中所做的事情。

<i:EventTrigger EventName="PreviewKeyDown">
    <i:InvokeCommandAction Command="{Binding DataContext.TargetFieldsKeyDownCommand, 
        RelativeSource={RelativeSource AncestorType={x:Type vw:MappingDataView}}}" >
        <i:InvokeCommandAction.CommandParameter>
             <MultiBinding Converter="{StaticResource KeyPressConverter}">
                  <Binding Source="Delete" />
                  <Binding ElementName="dtTDGrid" />
             </MultiBinding>
        </i:InvokeCommandAction.CommandParameter>
    </i:InvokeCommandAction>
</i:EventTrigger>

我想用实际的按键替换它,<Binding Source="Delete" />。是否可以在XAML中使用“交互性”来执行此操作,还是需要以不同的方式处理按下的键?是否有人提供我正在尝试做的事的示例?

使用交互的多重绑定是我发现的所有将2个或更多命令参数传递给被调用事件的方法。如果有在传递多个参数的同时调用事件处理程序的更好方法,请告诉我。

c# wpf datagrid keypress
1个回答
0
投票

我使用了@ mm8建议。现在,它可以按我的意愿运行。

© www.soinside.com 2019 - 2024. All rights reserved.