I am assuming you are using KeyDown
event or similar? That is not the way you want to do it. Instead, bind the AutoCompleteBox
Populating
event and set the MinimumPrefixLength
on your AutoCompleteBox
to 3 so thatPopulating
is fired only when you have 3+ characters. To show the list retrieved in your control, the list need to be bound to ItemsSource
property then a method needs to be called, PopulateComeplte()
.
You can see my answer here on a similar Question.
However, it is not MVVM friendly since you need to call a method on your AutoCompleteBox
to trigger the control to show the list from your webservice. Take a look at this article for a MVVM-friendly approach, scroll down to "Bonus: MVVM-friendly asynchronous filtering" section.