簡體   English   中英

用戶按Enter組合框后選擇的正確項目

[英]Correct item selected upon user pressing enter for a combobox

我有一個帶有自定義組合框的WPF,當用戶鍵入時,該組合框將過濾其余列表,以包含那些包含(而不是以開頭)用戶輸入的單詞。 現在,我想按Enter鍵,下拉菜單中的第一項就是selecteditem。

這是之前:

在此處輸入圖片說明

所需的行為:當我從此處按Enter鍵時,DHC成為SelectedItem。

實際發生的情況:

在此處輸入圖片說明

HEI成為選定的答案,(可能是因為它是唯一以“ HE”開頭的節點。

為了解決這個問題,我試圖通過在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次。 即使這樣,文本框也無法反映所需的行為

您可以在模型中綁定“選定項目”,並且每次過濾器更改時,都將“選定項目”設置為過濾列表中的第一個項目

這將是一種方法,以便我可以使用箭頭按鈕進行導航

如果WPF組合框默認情況下不支持箭頭導航,則可以使用“命令綁定”執行某些操作。

首先,您綁定SelectedIndex屬性,然后按下命令將僅設置SelectedItem = filteredList[SelectedIndex + 1] (帶有邊界檢查ofc)

但是我記得默認的組合Combobox應該包含鍵盤導航

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM