C# 如何使用CTRL+;V在空列表框中?

C# 如何使用CTRL+;V在空列表框中?,c#,wpf,c#-3.0,C#,Wpf,C# 3.0,我有一个空的列表框,我想允许用户将项目粘贴到其中。目前,我确保当用户单击列表框时,它具有焦点(根据)。然后,如果他们右键单击包含“粘贴”命令的上下文菜单,则将启用并可以单击该菜单,这非常好。但是,如果用户在键盘上按CTRL+V而不是右键单击,则不会执行粘贴命令 到目前为止,我还不知道该怎么做。如果列表框中有项目,并且选择了其中一项,则一切正常 谢谢将您自己的粘贴命令添加到列表框中 m_yourlistBoxReference.CommandBindings.Add(new CommandBind

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

到目前为止,我还不知道该怎么做。如果列表框中有项目,并且选择了其中一项,则一切正常

谢谢将您自己的粘贴命令添加到列表框中

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

但是,正如您已经编写的那样,您必须确保列表框是焦点,否则将不会执行
CommandBinding
。为了确保这一点,您可以注册到PreviewMouseDown事件,并在列表框未设置焦点时对其进行聚焦

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