Nimgoble / WPFTextBoxAutoComplete

An attached behavior for WPF's TextBox control that provides auto-completion suggestions from a given collection
https://www.nuget.org/packages/WPFTextBoxAutoComplete/
MIT License
101 stars 37 forks source link

WPFTextBoxAutoComplete

An attached behavior for WPF's TextBox control that provides auto-completion suggestions from a given collection

How to use this library:

  1. Install the package via NuGet

        PM> Install-Package WPFTextBoxAutoComplete
  2. Add a reference to the library in your view

        xmlns:behaviors="clr-namespace:WPFTextBoxAutoComplete;assembly=WPFTextBoxAutoComplete"
  3. 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}" 
        />
  4. (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"
        />
  5. (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".