Export (0) Print
Expand All
Expand Minimize

AutoCompleteFilterMode Enumeration

Silverlight

Specifies how text in the text box portion of the AutoCompleteBox control is used to filter items specified by the ItemsSource property for display in the drop-down.

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

public enum AutoCompleteFilterMode

Member nameDescription
NoneSpecifies that no filter is used. All items are returned.
StartsWithSpecifies a culture-sensitive, case-insensitive filter where the returned items start with the specified text. The filter uses the String.StartsWith method, specifying StringComparer.CurrentCultureIgnoreCase as the string comparison criteria.
StartsWithCaseSensitiveSpecifies a culture-sensitive, case-sensitive filter where the returned items start with the specified text. The filter uses the String.StartsWith method, specifying StringComparer.CurrentCulture as the string comparison criteria.
StartsWithOrdinalSpecifies an ordinal, case-insensitive filter where the returned items start with the specified text. The filter uses the String.StartsWith method, specifying StringComparer.OrdinalIgnoreCase as the string comparison criteria.
StartsWithOrdinalCaseSensitiveSpecifies an ordinal, case-sensitive filter where the returned items start with the specified text. The filter uses the String.StartsWith method, specifying StringComparer.Ordinal as the string comparison criteria.
ContainsSpecifies a culture-sensitive, case-insensitive filter where the returned items contain the specified text.
ContainsCaseSensitiveSpecifies a culture-sensitive, case-sensitive filter where the returned items contain the specified text.
ContainsOrdinalSpecifies an ordinal, case-insensitive filter where the returned items contain the specified text.
ContainsOrdinalCaseSensitiveSpecifies an ordinal, case-sensitive filter where the returned items contain the specified text.
EqualsSpecifies a culture-sensitive, case-insensitive filter where the returned items equal the specified text. The filter uses the String.Equals method, specifying StringComparer.CurrentCultureIgnoreCase as the search comparison criteria.
EqualsCaseSensitiveSpecifies a culture-sensitive, case-sensitive filter where the returned items equal the specified text. The filter uses the String.Equals method, specifying StringComparer.CurrentCulture as the string comparison criteria.
EqualsOrdinalSpecifies an ordinal, case-insensitive filter where the returned items equal the specified text. The filter uses the String.Equals method, specifying StringComparer.OrdinalIgnoreCase as the string comparison criteria.
EqualsOrdinalCaseSensitiveSpecifies an ordinal, case-sensitive filter where the returned items equal the specified text. The filter uses the String.Equals method, specifying StringComparer.Ordinal as the string comparison criteria.
CustomSpecifies that a custom filter is used. This mode is used when the AutoCompleteBox.TextFilter or AutoCompleteBox.ItemFilter properties are set.

An ordinal filter is a filter that uses the Unicode values of strings when performing comparisons.

Use None when the data source performs its own filtering.

The following example shows how to use the ValueMemberPath and FilterMode properties to populate the drop-down portion of the AutoCompleteBox control.

Run this sample


using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Windows.Data;
using System.Collections;

namespace ACBValueMemberPath
{
    public partial class MainPage : UserControl
    {
        List<Recording> MyMusic = new List<Recording>();
        public MainPage()
        {
            InitializeComponent();
            // Add items to the collection.
            MyMusic.Add(new Recording("Chris Sells", "Chris Sells Live",
                new DateTime(2008, 3, 5)));
            MyMusic.Add(new Recording("Chris Sells", "Sells Tells",
               new DateTime(2004, 4, 6)));
            MyMusic.Add(new Recording("Luka Abrus",
                "The Road to Redmond", new DateTime(2007, 8, 3)));
            MyMusic.Add(new Recording("Luka Abrus",
                "Luka", new DateTime(2005, 12, 8)));
            MyMusic.Add(new Recording("Luka Abrus",
               "Love and Luka", new DateTime(2005, 12, 8)));
            MyMusic.Add(new Recording("Jim Hance",
                "The Best of Jim Hance", new DateTime(2007, 2, 6)));

            // Set the data context for the AutoCompleteBox.
            myACB.DataContext = MyMusic;
        }
    }

    // Simple business object.
    public class Recording
    {
        public Recording() { }
        public Recording(string artistName, string cdName, DateTime release)
        {
            Artist = artistName;
            Name = cdName;
            ReleaseDate = release;
        }
        public string Artist { get; set; }
        public string Name { get; set; }
        public DateTime ReleaseDate { get; set; }
    }
}




<!-- NOTE: 
  By convention, the sdk prefix indicates a URI-based XAML namespace declaration 
  for Silverlight SDK client libraries. This namespace declaration is valid for 
  Silverlight 4 only. In Silverlight 3, you must use individual XAML namespace 
  declarations for each CLR assembly and namespace combination outside the scope 
  of the default Silverlight XAML namespace. For more information, see the help 
  topic "Prefixes and Mappings for Silverlight Libraries". 
-->
<UserControl xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"
    x:Class="ACBValueMemberPath.MainPage" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="clr-namespace:ACBValueMemberPath"
    Width="400" Height="413">
    <StackPanel x:Name="LayoutRoot" Background="White" >
        <StackPanel Orientation="Horizontal">
         <TextBlock Margin="5" Text="Enter a recording name:" TextWrapping="Wrap" />
            <sdk:AutoCompleteBox FilterMode="ContainsOrdinal" VerticalAlignment="Top" Margin="5" Width="170" 
                Height="30" x:Name="myACB" 
                ItemsSource="{Binding}" 
                ValueMemberPath="Name">
                <sdk:AutoCompleteBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel>
                        <TextBlock Text="{Binding Path=Name}"  />
                        <TextBlock Text="{Binding Path=Artist}"  />
                        </StackPanel>
                    </DataTemplate>
                </sdk:AutoCompleteBox.ItemTemplate>
            </sdk:AutoCompleteBox>
        </StackPanel>
      </StackPanel>
</UserControl>


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.


List<Employee> employees = new List<Employee>();
public MainPage()
{
    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 += SearchEmployees;


...


}


...


bool SearchEmployees(string search, object value)
{
    // Cast the value to an Employee.
    Employee emp = value as Employee;
    if (emp != null)
    {
        // Look for a match in the first and last names.
        if (emp.LastName.ToLower().StartsWith(search))
            return true;

        else if (emp.FirstName.ToLower().StartsWith(search))
            return true;
    }
    // If no match, return false.
    return false;
}


...


public class Employee
{
    public string LastName { get; set; }
    public string FirstName { get; set; }
    public string EmailName { get; set; }
    public int ID { get; set; }
    public Employee(string empLastName, string empFirstName, string empEmail, int empID)
    {
        LastName = empLastName;
        FirstName = empFirstName;
        EmailName = empEmail;
        ID = empID;
    }
    public override string ToString()
    {
        return "Employee: " + FirstName + " " + 
            LastName + System.Environment.NewLine + 
            "Email: " + EmailName + System.Environment.NewLine + "ID: " +
            ID.ToString();
    }
}



<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>


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