c# - Wpf editable ComboBox: How do I enter new text to combobox which is not in list by pressing Enter -


the problem: cannot enter custom text combobox , press enter close dropdown list, because written custom-text overwritten selected item dropdown list.

i use editable=true , istextsearchenabled=true combobox list of strings:

<combobox     iseditable="true"     istextsearchenabled="true"    itemssource="{binding names}"    selecteditem="{binding selectedname}"    text="{binding name}"    >    <combobox.style>      <style>          <eventsetter event="textboxbase.textchanged"                      handler="cmbtextfield_textchanged" />      </style>    </combobox.style> </combobox> 

textchanged: opens combobox dropdown list if text changed

private void cmbtextfield_textchanged(object sender, textchangedeventargs e) {     var cmbx = sender combobox;     //open dropdwon      cmbx.isdropdownopen = true;        } 

how-to problem:

  1. enter first letter e.g.: "a". -> opens dropdown list , selects first name starts a.
  2. type additional letters end of found name (to new string not in list)
  3. press enter -> dropdown window closed , custom text overwritten selected text list.

(but working correctly if press tab instead of enter) know how solve issue?

  1. update: problem seems related istextsearchenabled=true property.

you can trying subscribing onpreviewkeydown method, fire before key press processed. when method called can check if key pressed return , mark handled.

something along lines should it:

private void cmbtextfield_previewkeydown(object sender, previewkeydowneventargs e) {     if (e.keydata == keys.return) {          e.handled = true;     } } 

bear in mind code wasn't tested.


Comments

Popular posts from this blog

ruby - Trying to change last to "x"s to 23 -

jquery - Clone last and append item to closest class -

c - Unrecognised emulation mode: elf_i386 on MinGW32 -