I have editable combobox where not always the preferred item is in the drop-down list.
I would like to have the possibility of manually entering text in the textbox
I was just doing this yesterday and today and it looks like the following:
set the combobox IsEditable="true"
instead of binding to SelectedItem
, bind to the Text
property of the combobox
if you're binding to a custom object instead of just strings, you need to also set TextSearch.TextPath="NameOfField"
. This lets the text search behavior work, and also shows this property in the textbox as well.
All in all, I ended up with something like:
<ComboBox x:Name="c"
IsEditable="True"
IsTextSearchEnabled="True"
IsTextSearchCaseSensitive="False"
StaysOpenOnEdit="True"
Text="{Binding NameOnViewModel}"
TextSearch.TextPath="NameOnChildItems"
ItemsSource="{Binding Items}"
ItemTemplate="{StaticResource DataTemplate}" />
<TextBlock Text="{Binding ElementName=c,Path=Text}" />
Setting the binding to Text property of Combo will suffice as well.
<ComboBox IsTextSearchEnabled="True" IsEditable="True"
ItemsSource="{Binding Items}" Text="{Binding SelectedItemText, Mode=TwoWay}" />