Export (0) Print
Expand All

AutoCompleteBox.MinimumPrefixLength Property

Silverlight

Gets or sets the minimum number of characters required to be entered in the text box before the AutoCompleteBox displays possible matches.

Namespace:  System.Windows.Controls
Assembly:  System.Windows.Controls.Input (in System.Windows.Controls.Input.dll)

'Declaration
Public Property MinimumPrefixLength As Integer
<sdk:AutoCompleteBox MinimumPrefixLength="int"/>

Property Value

Type: System.Int32
The minimum number of characters to be entered in the text box before the AutoCompleteBox displays possible matches. The default is 1.

Population of the AutoCompleteBox does not occur until the conditions specified by the MinimumPrefixLength and the MinimumPopulateDelay property values are met. You can use the MinimumPrefixLength property to delay the population request when manually populating the selector control.

If you set MinimumPrefixLength to -1, the AutoCompleteBox will not provide possible matches. There is no maximum value, but setting MinimumPrefixLength to value that is too large will prevent the AutoCompleteBox from providing possible matches as well.

The following code example demonstrates how to use the MinimumPopulateDelay and MinimumPrefixLength properties together with handling the Populating event to populate the AutoCompleteBox manually. This code example sets the PopulatingEventArgs.Cancel property to true to stop auto-population and then calls PopulateComplete when the manual population operation is complete. This code example requires a reference to the System.Windows.Controls.Input assembly.

Run this sample


    ' Handle the Populating event, but cancel it. Make the call to the web service. 
    Private Sub AutoCompleteBox_Populating(ByVal sender As Object, ByVal e As PopulatingEventArgs)
        e.Cancel = True
        CallToWebService()
    End Sub

    ' Call the topic service at the live search site. 
    Private wc As WebClient
    Private Sub CallToWebService()
        wc = New WebClient()
        wc.DownloadStringAsync(New Uri("http://api.search.live.net/qson.aspx?query=" & _
            myACB.SearchText & "&sources=news"))
        AddHandler wc.DownloadStringCompleted, AddressOf wc_DownloadStringCompleted
    End Sub

    Private Sub wc_DownloadStringCompleted(ByVal sender As Object, _
            ByVal e As DownloadStringCompletedEventArgs)
        If e.[Error] IsNot Nothing Then
            Exit Sub
        End If

        Dim data As New List(Of String)()
        Try
            Dim jso As JsonObject = TryCast(DirectCast(JsonObject.Parse(e.Result),  _
                JsonObject)("SearchSuggestion"), JsonObject)
            Dim originalSearchString As String = jso("Query")
            If originalSearchString = myACB.SearchText Then
                For Each suggestion As JsonObject In DirectCast(jso("Section"), JsonArray)
                    data.Add(suggestion.Values.First())
                Next

                ' Diplay the AutoCompleteBox drop down with any suggestions 
                myACB.ItemsSource = data
                myACB.PopulateComplete()
            End If
        Catch
        End Try
    End Sub
End Class



   <StackPanel x:Name="LayoutRoot" Background="White" Orientation="Horizontal">
    <TextBlock Text="News Topic:" HorizontalAlignment="Left"  VerticalAlignment="Center"/>
    <sdk:AutoCompleteBox VerticalAlignment="Center" HorizontalAlignment="Right" Height="30" 
        Width="100" MinimumPopulateDelay="200" MinimumPrefixLength="3" x:Name="myACB" Populating="AutoCompleteBox_Populating" />
</StackPanel>


Silverlight

Supported in: 5, 4, 3

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Community Additions

ADD
Show:
© 2014 Microsoft