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
具体的意思我相信大家通过单词的意思就可以明白很多。我们来试着用一下这个属性。
this.citiesACB.FilterMode = AutoCompleteFilterMode.Contains;
重新部署运行程序,效果如下图所示:
从图中我们可以看到,在添加了包含这样的过滤模式后,当用户输入g时,所有的数据中只要包含了g字母均自动出现在下列框中。相反,当我们使用默认属性时,输入字母g时,下拉框中不会出现任何相关信息。
http://www.windowsphonegeek.com/articles/autocompletebox-for-wp7-in-depth
同时,也可以参阅Toolkit的官方help文档
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。