我有一个WPF自定义组合框,作为用户键入,筛选剩余的单词包含(不只是开始)用户输入的列表。现在我想按回车,下拉菜单中的第一项是选定的项目。正确的项目选择用户按enter键组合框
这里是前:
期望的行为:当我按下从这里进入,DHC成为的SelectedItem。
实际发生的:
HEI成为选择的答案,(可能是因为它是与“他”开始的唯一节点
为了解决这个问题,我试图通过在xaml中包括这个来使按键功能过载:
<i:Interaction.Triggers>
<i:EventTrigger EventName="KeyDown" >
<cmd:EventToCommand Command="{Binding KeyPress}"
PassEventArgsToCommand="True" />
</i:EventTrigger>
</i:Interaction.Triggers>
哪些路由到代码中:
private void OnDownPress(KeyEventArgs e)
{
var key = e.Key.ToString().ToLower();
switch (key)
{
case "up":
break;
case "down"
break;
case "return":
SelectedNode = NodeTokenList[0];
UserInput = NodeTokenList[0].FullNodeName;
break;
}
}
现在我试着在switch语句的返回部分设置一个断点,我必须在开关被触发前按下enter 3次。而且当时的文本框不会反映所需的行为
你大概可以绑定选择的项目,并将其设置为过滤列表中的第一项 – Steve
嗯,沿着这些线做某事似乎工作。如果你想回答它,我会接受。后续问题虽然,当我尝试滚动下拉菜单时,它会更改文本框中的值,然后将该列表仅筛选出与该字符串匹配的列表,只留下文本框中的项目作为可能的答案。 。有什么办法让我可以使用箭头按钮进行导航? –