Editable ComboBox with binding to value not in list Editable ComboBox with binding to value not in list wpf wpf

Editable ComboBox with binding to value not in list


I was just doing this yesterday and today and it looks like the following:

  1. set the combobox IsEditable="true"

  2. instead of binding to SelectedItem, bind to the Text property of the combobox

  3. 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}" />