Why not just use a Editable ComboBox in WPF. This will allow for you to have a list of items that you can select by the drop down or autofill when typing but gives you the benefit of free typing in a value also.
<ComboBox Name="comboExample" IsEditable="True">
If you just want to use the combobox as a textbox then just look at the text property of the combobox, in my example it would look like this in c#: 'comboExample.Text'. If you want to see if it used one of the predefined items, the comboExample.SelectedItem will have an item in it, otherwise if you free typed a new value that property will be null. I know this is not exactly what you asked for but I think it will work for what you are trying to accomplish.