Silverlight Toolkit --- AutoCompleteBox的用法

来源:互联网 发布:安卓ping软件 编辑:程序博客网 时间:2024/05/19 12:12

 AutoCompleteBox控件,从外形上乍一看有点像EditBox, 实际上非常不同。该控件提供一个文本框(用于放置用户输入)和一个下拉项(根据文本框中的输入包含可能的匹配项)。(来自MSDN的官方解释)

在使用AutoCompleteBox的时候,主要是对ItemSource这个属性的设置。这也是提示项内容的来源。这个数据来源可以自定义类别,或者利用字典的方式。

下面看一个简单的例子:

MainPage.xaml文件中

<toolkit:AutoCompleteBox Name="citiesACB" />

 

MainPage.xaml.cs文件中,

public MainPage()
        {
            InitializeComponent();
            List<string> cities = new List<string>();
            cities.Add("BeiJing");
            cities.Add("ShangHai");
            cities.Add("BeiHai");
            cities.Add("ShanXi");
            cities.Add("DaLian");
            cities.Add("DanYang");
            cities.Add("DaTong");
            citiesACB.ItemsSource = cities;
        }

实际运行效果:

 

IsTextCompletionEnabled :该属性为True时,用于将当前被查询到的第一条记录的信息暂时放在控件的输入框中。实际的效果如下图:

当然,还可以使用属性ItemTemplate,自定义选择创建新模板。(这部分内容,lz还得努力去学习一下。对Silverlight了解得太少。惭愧啊)

 

补充:

AutoCompleteFilterMode:可以用来指定过滤模式,当前默认的模式为AutoCompleteFilterMode.StartsWith,从开头字母过滤。通过查阅官方提供的Toolkit帮助文档,我们可以知道具体的过滤模式有哪些:

None

StartsWith

StartsWithCaseSensitive

StartsWithOrdinal

StartsWithOrdinalCaseSensitive

Contains

ContainsCaseSensitive

ContainsOrdinal

ContainsOrdinalCaseSensitive

Equals

EqualsCaseSensitive

EqualsOrdinal

EqualsOrdinalCaseSensitive

Custom

    具体的意思我相信大家通过单词的意思就可以明白很多。我们来试着用一下这个属性。

在MainPage.xaml.cs文件中添加语句:

     this.citiesACB.FilterMode = AutoCompleteFilterMode.Contains;

重新部署运行程序,效果如下图所示:

从图中我们可以看到,在添加了包含这样的过滤模式后,当用户输入g时,所有的数据中只要包含了g字母均自动出现在下列框中。相反,当我们使用默认属性时,输入字母g时,下拉框中不会出现任何相关信息。

 

另外,详细得更多的属性可以参阅以下链接:

http://www.windowsphonegeek.com/articles/autocompletebox-for-wp7-in-depth

同时,也可以参阅Toolkit的官方help文档