黑马程序员技术交流社区
标题:
AutoCompleteBox 自动提示
[打印本页]
作者:
夏华成
时间:
2012-5-19 09:47
标题:
AutoCompleteBox 自动提示
以下是本人QQ空间早期日记. 都是自己实际工作中用到的(分享一下)
<input:AutoCompleteBox x:Name="autoCompleteBox" Width="100" Height="30" Margin="10"
MinimumPrefixLength="0" IsTextCompletionEnabled="True" MaxDropDownHeight="100"
FilterMode="Custom" Populating="autoCompleteBoxPopulate_Populating"
MinimumPopulateDelay="500"/>
说明
<!--
MinimumPrefixLength - 如需显示自动完成的匹配项,所需输入的最少字符数
IsTextCompletionEnabled - 是否在 Text 中显示当前匹配项的全部内容
MaxDropDownHeight - 下拉框的最大长度
FilterMode - 根据用户的输入,对数据源做过滤的方式,默认值:StartsWith [System.Windows.Controls.AutoCompleteFilterMode 枚举]
本例演示如何实现自定义的过滤
DropDownOpening, DropDownOpened, DropDownClosing, DropDownClosed - 顾名思义的几个事件
-->
<!--
Populating, Populated - 调用 按需加载数据服务 的一对事件
MinimumPopulateDelay - 调用 按需加载数据服务 的延迟时间。即在用户的输入发生改变时,此时间后调用指定的服务
-->
复制代码
后台程序
private void Init()
{
// IsDropDownOpen - 是否显示自定完成的下拉框
autoCompleteBox.GotFocus += delegate { autoCompleteBox.IsDropDownOpen = true; };
autoCompleteBox.Focus();
List<string> collection = new List<string>();
collection.Add("aabb");
collection.Add("aabc");
collection.Add("abcc");
collection.Add("abbc");
collection.Add("aaab");
collection.Add("bcca");
collection.Add("bbac");
collection.Add("cbaa");
collection.Add("ccaa");
collection.Add("cccb");
collection.Add("cccc");
collection.Add("cabc");
collection.Add("cabb");
autoCompleteBox.ItemsSource = collection;
/**/
/*
* ItemFilter - 过滤下拉框内的对象
* TextFilter - 过滤下拉框内的字符串
* SearchText - 以此值为参数,过滤下拉框中的数据
* SelectedItem - 下拉框当前所选中的对象
*/
// 自定义 FilterMode
// 第一个参数:用户输入的值;第二个参数:下拉框中的对象
autoCompleteBox.ItemFilter += (search, value) =>
{
if (value.ToString().ToLower().StartsWith(search.ToLower()) || value.ToString().ToLower().EndsWith(search.ToLower()))
return true;
return false;
};
}
复制代码
作者:
许庭洲
时间:
2014-8-20 08:29
值得学习ing!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2