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:
- enter first letter e.g.: "a". -> opens dropdown list , selects first name starts a.
- type additional letters end of found name (to new string not in list)
- press enter -> dropdown window closed , custom text overwritten selected text list.
(but working correctly if press tab instead of enter) know how solve issue?
- 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
Post a Comment