在微软的Silverlight 开源控件项目“Silverlight Toolkit”中,提供了一个自动完成输入框控件:AutoCompleteBox。
该控件的功能就是完成类似于google,或baidu中的搜索输入框的提示(选项)等功能,如下图所示:
下面是AutoCompleteBox的运行效果图:
好的,下面就简要介绍一下这个控件的使用方法:
首先,我们要新创建一个Silverlight的Application项目,然后要准备一个数据源,也就是当我们输入内容时,弹出的下拉列
表框(这里就暂且这么说吧)中显示的相似的提示信息,这里为了方便起见,我直接用其源码示例中的硬编码类来表示数据源,当
然后面还会介绍如何使用WCF来加载数据源信息,这里先创建一个Employee(雇员信息)类,如下:
Code
public sealed partial class Employee
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string DisplayName
{
get
{
return FirstName + " " + LastName;
}
}
public Employee()
{
}
internal Employee(string firstName, string lastName)
{
FirstName = firstName;
LastName = lastName;
}
public override string ToString()
{
return DisplayName;
}
Sample data#region Sample data
public static IEnumerable<Employee> AllExecutives
{
get
{
yield return new Employee("Walid", "Abu-Hadba");
yield return new Employee("J", "Allard");
yield return new Employee("Klaus", "Holse Andersen");
yield return new Employee("Nancy", "Anderson");
yield return new Employee("Brian", "Arbogast");
yield return new Employee("Orlando", "Ayala");
yield return new Employee("Robert J.", "Bach");
yield return new Employee("Martha", "Béjar");
yield return new Employee("Joe", "Belfiore");
yield return new Employee("Sue", "Bevington");
yield return new Employee("Frank H.", "Brod");
yield return new Employee("Brad", "Brooks");
yield return new Employee("Lisa", "Brummel");
yield return new Employee("Tom", "Burt");
yield return new Employee("Chris", "Capossela");
yield return new Employee("Scott", "Charney");
yield return new Employee("Debra", "Chrapaty");
yield return new Employee("Jean-Philippe", "Courtois");
yield return new Employee("Alain", "Crozier");
yield return new Employee("Kurt", "DelBene");
yield return new Employee("Michael", "Delman");
yield return new Employee("Joe", "DeVaan");
yield return new Employee("Gerri", "Elliott");
yield return new Employee("Stephen", "Elop");
yield return new Employee("Ben", "Fathi");
yield return new Employee("Grant", "George");
yield return new Employee("Tom", "Gibbons");
yield return new Employee("L. Michael", "Golden");
yield return new Employee("Alexander", "Gounares");
yield return new Employee("Steve", "Guggenheimer");
yield return new Employee("Anoop", "Gupta");
yield return new Employee("Tony", "Hey");
yield return new Employee("Yasuyuki", "Higuchi");
yield return new Employee("Roz", "Ho");
yield return new Employee("Kathleen", "Hogan");
yield return new Employee("Frank", "Holland");
yield return new Employee("Todd", "Holmdahl");
yield return new Employee("Darren", "Huston");
yield return new Employee("Rajesh", "Jha");
yield return new Employee("Chris", "Jones");
yield return new Employee("Erik", "Jorgensen");
yield return new Employee("Rich", "Kaplan");
yield return new Employee("Bob", "Kelly");
yield return new Employee("Jawad", "Khaki");
yield return new Employee("Shane", "Kim");
yield return new Employee("Peter", "Klein");
yield return new Employee("Mitchell L.", "Koch");
yield return new Employee("Ted", "Kummert");
yield return new Employee("Julie", "Larson-Green");
yield return new Employee("Antoine", "Leblond");
yield return new Employee("Andrew", "Lees");
yield return new Employee("John M.", "Lervik");
yield return new Employee("Lewis", "Levin");
yield return new Employee("Dan'l", "Lewin");
yield return new Employee("Moshe", "Lichtman");
yield return new Employee("Christopher", "Liddell");
yield return new Employee("Steve", "Liffick");
yield return new Employee("Brian", "MacDonald");
yield return new Employee("Ron", "Markezich");
yield return new Employee("Maria", "Martinez");
yield return new Employee("Mich", "Mathews");
yield return new Employee("Don A.", "Mattrick");
yield return new Employee("Joe", "Matz");
yield return new Employee("Brian", "McAndrews");
yield return new Employee("Richard", "McAniff");
yield return new Employee("Yusuf", "Mehdi");
yield return new Employee("Jim", "Minervino");
yield return new Employee("William H.", "Mitchell");
yield return new Employee("Jens Winther", "Moberg");
yield return new Employee("Mindy", "Mount");
yield return new Employee("Bob", "Muglia");
yield return new Employee("Craig", "Mundie");
yield return
public sealed partial class Employee
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string DisplayName
{
get
{
return FirstName + " " + LastName;
}
}
public Employee()
{
}
internal Employee(string firstName, string lastName)
{
FirstName = firstName;
LastName = lastName;
}
public override string ToString()
{
return DisplayName;
}
Sample data#region Sample data
public static IEnumerable<Employee> AllExecutives
{
get
{
yield return new Employee("Walid", "Abu-Hadba");
yield return new Employee("J", "Allard");
yield return new Employee("Klaus", "Holse Andersen");
yield return new Employee("Nancy", "Anderson");
yield return new Employee("Brian", "Arbogast");
yield return new Employee("Orlando", "Ayala");
yield return new Employee("Robert J.", "Bach");
yield return new Employee("Martha", "Béjar");
yield return new Employee("Joe", "Belfiore");
yield return new Employee("Sue", "Bevington");
yield return new Employee("Frank H.", "Brod");
yield return new Employee("Brad", "Brooks");
yield return new Employee("Lisa", "Brummel");
yield return new Employee("Tom", "Burt");
yield return new Employee("Chris", "Capossela");
yield return new Employee("Scott", "Charney");
yield return new Employee("Debra", "Chrapaty");
yield return new Employee("Jean-Philippe", "Courtois");
yield return new Employee("Alain", "Crozier");
yield return new Employee("Kurt", "DelBene");
yield return new Employee("Michael", "Delman");
yield return new Employee("Joe", "DeVaan");
yield return new Employee("Gerri", "Elliott");
yield return new Employee("Stephen", "Elop");
yield return new Employee("Ben", "Fathi");
yield return new Employee("Grant", "George");
yield return new Employee("Tom", "Gibbons");
yield return new Employee("L. Michael", "Golden");
yield return new Employee("Alexander", "Gounares");
yield return new Employee("Steve", "Guggenheimer");
yield return new Employee("Anoop", "Gupta");
yield return new Employee("Tony", "Hey");
yield return new Employee("Yasuyuki", "Higuchi");
yield return new Employee("Roz", "Ho");
yield return new Employee("Kathleen", "Hogan");
yield return new Employee("Frank", "Holland");
yield return new Employee("Todd", "Holmdahl");
yield return new Employee("Darren", "Huston");
yield return new Employee("Rajesh", "Jha");
yield return new Employee("Chris", "Jones");
yield return new Employee("Erik", "Jorgensen");
yield return new Employee("Rich", "Kaplan");
yield return new Employee("Bob", "Kelly");
yield return new Employee("Jawad", "Khaki");
yield return new Employee("Shane", "Kim");
yield return new Employee("Peter", "Klein");
yield return new Employee("Mitchell L.", "Koch");
yield return new Employee("Ted", "Kummert");
yield return new Employee("Julie", "Larson-Green");
yield return new Employee("Antoine", "Leblond");
yield return new Employee("Andrew", "Lees");
yield return new Employee("John M.", "Lervik");
yield return new Employee("Lewis", "Levin");
yield return new Employee("Dan'l", "Lewin");
yield return new Employee("Moshe", "Lichtman");
yield return new Employee("Christopher", "Liddell");
yield return new Employee("Steve", "Liffick");
yield return new Employee("Brian", "MacDonald");
yield return new Employee("Ron", "Markezich");
yield return new Employee("Maria", "Martinez");
yield return new Employee("Mich", "Mathews");
yield return new Employee("Don A.", "Mattrick");
yield return new Employee("Joe", "Matz");
yield return new Employee("Brian", "McAndrews");
yield return new Employee("Richard", "McAniff");
yield return new Employee("Yusuf", "Mehdi");
yield return new Employee("Jim", "Minervino");
yield return new Employee("William H.", "Mitchell");
yield return new Employee("Jens Winther", "Moberg");
yield return new Employee("Mindy", "Mount");
yield return new Employee("Bob", "Muglia");
yield return new Employee("Craig", "Mundie");
yield return