我想有条件地阻止Enter / Return键在ComboBox下拉列表中选择突出显示的项目。所以我将一个事件处理程序连接到ComboBox.PreviewKeyDown,以便我可以设置Handled属性,但永远不会输入事件处理程序。当我使用Snoop观察事件时,会为其他键触发PreviewKeyDown事件,但是当我按下返回键时它永远不会触发;甚至没有在窗口级别。为什么不发射事件?
编辑: ComboBox需要可编辑(IsEditable = true)。然后打开下拉列表。开始输入列表中的项目,它应该为您选择它。按返回键。
答案 0 :(得分:0)
试试这个
// prevent selecting an item when a comboboxitem is highlighted
protected override void OnPreviewKeyDown(KeyEventArgs e)
{
if (e.Key == System.Windows.Input.Key.Enter || e.Key == System.Windows.Input.Key.Return)
{
e.Handled = true;
}
else
{
//if (base.IsDropDownOpen == false)
//{
// base.IsDropDownOpen = true;
//}
}
//base.OnPreviewKeyDown(e);
}