我目前有一个调用KeyDown
事件的EventTrigger,然后使用此触发器使用EventToCommand
调用ViewModel命令。指定KeyDown
事件中使用的密钥的最佳方法是什么(除了使用KeyEventArgs
将CommandParameter
传递给PassEventArgsToCommand
之外?
示例:
<i:Interaction.Triggers>
<i:EventTrigger EventName="KeyDown">
<command:EventToCommand Command="{Binding Path=TestCommand}"
CommandParameter="{Binding ElementName=tempListView,
Path=SelectedItem}" />
</i:EventTrigger>
</i:Interaction.Triggers>
对此的任何帮助将不胜感激。
答案 0 :(得分:1)
如果需要使用键事件数据
,则只能使用命令参数绑定一个元素<i:Interaction.Triggers>
<i:EventTrigger EventName="KeyDown">
<command:EventToCommand Command="{Binding Path=TestCommand}" PassEventArgsToCommand="True"/>
</i:EventTrigger>
</i:Interaction.Triggers>
public RelayCommand<KeyEventArgs> Command { get; private set; }
或者,如果您使用的是列表框,并且您想要该项目,则应该这样做:
<i:Interaction.Triggers>
<i:EventTrigger EventName="KeyDown">
<command:EventToCommand Command="{Binding Path=TestCommand}" CommandParameter="{Binding}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
如果你需要Key 和这个项目,那就更复杂了,在绑定的集合上你可以将所描述的触发器的使用与绑定的 SelectedItem <结合起来/ strong>,因此当命令被触发时,您可以检查ViewModel上的所选项目。