.NET WPF自动完成控件源码下载
下面先来看下WPF自动完成控件的效果图: 开发介绍 : 在WPF中缺少一个支持自动完成的控件,最接近的控件是ComboBox ,它也是实现本篇文章的一个基础控件。 开发背景 : 一个自动完成
下面先来看下WPF自动完成控件的效果图:
开发介绍:
在WPF中缺少一个支持自动完成的控件,最接近的控件是ComboBox ,它也是实现本篇文章的一个基础控件。
开发背景:
一个自动完成控件允许用户输入文本的时候,控件会尽可能的去查询出一个用户已经输入的文本选择项。最流行的自动完成处理是通过查询这个控件当前文本的开头部分。
它是如何运作:
下面是我们关心的一些ComboBox中的属性:
•IsEditable- 这个允许用户在这个控件上输入文本。
•StaysOpenOnEdit - 这个将强制ComboBox在输入时保持打开。
•IsTextSearchEnabled - 这将使用ComboBox默认的自动完成的行为。
我们通过使用上面的属性结合一个控制延迟查询的时间,和允许用户附加新的数据源的事件,以及一些风格样式,来实现自动完成控件。(AutoComplete.xaml.cs文件中)
下面使用这个控件

<Window x:Class="Gui.TestWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:ctr="clr-namespace:Gui.Controls" Title="Auto Complete Test" Height="200" Width="300" Loaded="Window_Loaded"> <StackPanel> <StackPanel.Resources> <ResourceDictionary Source="/Gui.Controls;component/Styles/AutoComplete.Styles.xaml" /> </StackPanel.Resources> <Label>Cities:</Label> <ctr:AutoComplete x:Name="autoCities" SelectedValuePath="CityID" DisplayMemberPath="Name" PatternChanged="autoCities_PatternChanged" Style="{StaticResource AutoCompleteComboBox}" Delay="500"/> <!-- can also do binding on selected value --> </StackPanel> </Window>
类似一个combobox,自动完成控件利用DisplayMemberPath 和SelectValuePath 属性来绑定具体的数据源

/// <summary> /// occurs when the user stops typing after a delayed timespan /// </summary> /// <param name="sender"></param> /// <param name="args"></param> protected void autoCities_PatternChanged(object sender, Gui.Controls.AutoComplete.AutoCompleteArgs args) { //check if (string.IsNullOrEmpty(args.Pattern)) args.CancelBinding = true; else args.DataSource = TestWindow.GetCities(args.Pattern); }
我们能利用PatternChanged事件来监听控件上当前输入数据的改变。
有趣的地方:
利用MVVM模式能创建一个任何实体的视图模型,并将其绑定到具有突显属性的数据源上。通过使用样式,这突显的部分将显示在下拉框中。
代码:/Files/zhuqil/AutoComplete.zip
精彩图集
精彩文章
热门标签
获取系统图标
垃圾回收机制
表空间
倒数
表数据
无法还原
清空
内部服务器
time模块
.mdf
程序多次启动
二维条形码
提高查询速度
hql语句
安全隐患
模式
Client的简单测
最小宽度
windows7
if条件
Oracle常用命令
web网马
system
相似度
合并多个
获取远程图片
百度Sitemap
导入导出
多文本框
字符类型
定积分
证书加密
time()
arping
把
overload
64位
中翻英
起止时间
atrr
遍历文件
CSS透明属性
磁盘挂载
阿拉伯
置顶
mysql使用教程
选择内容
whois
java单链表
哈弗曼编码
IO文件
select标签
生成随机数
提示模块不存
uniqueidenti
安全设置
左键
CreateThread
startActivi
jqueryhighch
赞助商链接
@CopyRight 2002-2008, 1SOHU.COM, Inc. All Rights Reserved QQ:1010969229