如何在空列表框中使用CTRL + V启用粘贴?

时间:2011-04-27 15:34:55

标签: c# wpf c#-3.0

我有一个空的列表框,我想让用户将项目粘贴到其中。目前,当用户点击列表框时,我确保列表框具有焦点(根据WPF: How to enable a Command?)。然后,如果他们右键单击包含粘贴命令的上下文菜单将被启用并且可以单击,这是非常好的。但是,如果不是右键单击用户而是按下键盘上的CTRL + V,则不会执行“粘贴”命令。

到目前为止,我无法弄清楚如何使这项工作。如果列表框中包含项目并且其中一个被选中,则一切正常。

由于

2 个答案:

答案 0 :(得分:3)

将自己的CommandBinding添加到ListBox中的粘贴命令。

m_yourlistBoxReference.CommandBindings.Add(new CommandBinding(ApplicationCommands.Paste,YourExecutedHandler,YourCanExecuteHandler));

但是,如您已经写过的那样,您必须确保ListBox具有焦点,否则CommandBinding将不会执行。为了确保这一点,您可以注册到PreviewMouseDown事件并关注ListBox,如果尚未IsFocused为真。

答案 1 :(得分:0)

我不是WPF专家;但是,在WinForms中,最简单的方法是添加一个上下文菜单,其中包含用于剪切,复制,粘贴等的快捷键。然后,除了实现上下文菜单单击之外,您不必执行任何操作。