An attached behavior for WPF's TextBox control that provides auto-completion suggestions from a given collection
Install the package via NuGet
PM> Install-Package WPFTextBoxAutoComplete
Add a reference to the library in your view
xmlns:behaviors="clr-namespace:WPFTextBoxAutoComplete;assembly=WPFTextBoxAutoComplete"
Create a textbox and bind the "AutoCompleteItemsSource" to a collection of IEnumerable<String>
<TextBox
Width="250"
HorizontalAlignment="Center"
Text="{Binding TestText, UpdateSourceTrigger=PropertyChanged}"
behaviors:AutoCompleteBehavior.AutoCompleteItemsSource="{Binding TestItems}"
/>
(Optional) Set the "AutoCompleteStringComparison" property, which is of type StringComparison
<TextBox
Width="250"
HorizontalAlignment="Center"
Text="{Binding TestText, UpdateSourceTrigger=PropertyChanged}"
behaviors:AutoCompleteBehavior.AutoCompleteItemsSource="{Binding TestItems}"
behaviors:AutoCompleteBehavior.AutoCompleteStringComparison="InvariantCultureIgnoreCase"
/>
(Optional) Set the "AutoCompleteIndicator" property, which is a String. This is used to indicate to the behavior that it should start making auto-completion suggestions.
<TextBox
Width="250"
HorizontalAlignment="Center"
Text="{Binding TestText, UpdateSourceTrigger=PropertyChanged}"
behaviors:AutoCompleteBehavior.AutoCompleteItemsSource="{Binding TestItems}"
behaviors:AutoCompleteBehavior.AutoCompleteIndicator="@"
/>
Now, every time the "TestText" property of your datacontext is changed, WPFTextBoxAutoComplete will provide you with auto-completion suggestions. To accept a suggestion, just hit "enter".