AutoCompleteFilterPredicate(Of T) Delegate
Represents the filter used by the AutoCompleteBox control to determine whether an item is a possible match for the specified text.
Namespace: System.Windows.Controls
Assembly: System.Windows.Controls.Input (in System.Windows.Controls.Input.dll)
'Declaration Public Delegate Function AutoCompleteFilterPredicate(Of T) ( _ search As String, _ item As T _ ) As Boolean
Type Parameters
- T
The type used for filtering the AutoCompleteBox. This type can be either a string or an object.
Parameters
- search
- Type: System.String
The string used as the basis for filtering.
- item
- Type: T
The item that is compared with the search parameter.
Return Value
Type: System.Booleantrue to indicate item is a possible match for search; otherwise false.
This delegate is used by the ItemFilter and TextFilter properties of the AutoCompleteBox. When used with ItemFilter, T is an object. When used with TextFilter, T must be a string.
The following example shows how to set the FilterMode to Custom, and then set the ItemFilter property to a custom filter method for the Employee object. The custom filter returns matches from employees' first or last name. This code example requires a reference to the System.Windows.Controls.Input assembly.
Private employees As New List(Of Employee)() Public Sub New() InitializeComponent() ' Add some items to the employee list. employees.Add(New Employee("Sells", "Chris", "csells", 1234)) employees.Add(New Employee("Cabatana", "Reina", "rcaba", 5678)) employees.Add(New Employee("Sprenger", "Christof", "cspreng", 9123)) employees.Add(New Employee("Brandel", "Jonas", "jbrandel", 4567)) employees.Add(New Employee("Bye", "Dennis", "dbye", 8912)) employees.Add(New Employee("Reid", "Miles", "mreid", 3456)) ' Set the item source. myACB.ItemsSource = employees ... ' Set the ItemFilter property to the search method. myACB.ItemFilter = AddressOf SearchEmployees ... End Sub ... Private Function SearchEmployees(ByVal search As String, ByVal value As Object) As Boolean ' Cast the value to an Employee. Dim emp As Employee = TryCast(value, Employee) If emp IsNot Nothing Then ' Look for a match in the first and last names. If emp.LastName.ToLower().StartsWith(search) Then Return True ElseIf emp.FirstName.ToLower().StartsWith(search) Then Return True End If End If ' If no match, return false. Return False End Function ... Public Class Employee Private _LastName As String Public Property LastName() As String Get Return _LastName End Get Set(ByVal value As String) _LastName = value End Set End Property Private _FirstName As String Public Property FirstName() As String Get Return _FirstName End Get Set(ByVal value As String) _FirstName = value End Set End Property Private _EmailName As String Public Property EmailName() As String Get Return _EmailName End Get Set(ByVal value As String) _EmailName = value End Set End Property Private _ID As Integer Public Property ID() As Integer Get Return _ID End Get Set(ByVal value As Integer) _ID = value End Set End Property Public Sub New(ByVal empLastName As String, ByVal empFirstName As String, ByVal empEmail As String, ByVal empID As Integer) LastName = empLastName FirstName = empFirstName EmailName = empEmail ID = empID End Sub Public Overloads Overrides Function ToString() As String Return ((("Employee: " & FirstName & " ") + LastName + System.Environment.NewLine & "Email: ") + EmailName + System.Environment.NewLine & "ID: ") + ID.ToString() End Function End Class
<StackPanel x:Name="LayoutRoot" Background="LightGray"> <TextBlock FontWeight="Bold" Text="AutoCompleteBox Custom Filter Example" Margin="5"/> <StackPanel Orientation="Horizontal"> <TextBlock Text="Employee:" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Center"/> <sdk:AutoCompleteBox Height="75" Width="200" VerticalAlignment="Center" HorizontalAlignment="Right" x:Name="myACB" FilterMode="Custom" ToolTipService.ToolTip="Enter employee name."/> </StackPanel> </StackPanel>
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.