.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
收藏文章
精彩图集
精彩文章
- 暂无记录。
热门标签
阿里云
源码
IIS+PHP
受欢迎
恢复数
后台获取
synchronize
数组值
clientWidth与
显示桌面
域控
跳转进市场
拷贝节点
jsp获取参数
数据编程
两位
创建新用户
正常访问
Java获取路径
访问DOM
数据库连接池
启动脚本
ftp_connect
DataSet转josn
层div
dl函数
非类型安全
入口参数
寻找
javascript变量
判断提示
PowerEdge
oracle异机
多行数据
移动文件夹
整体刷新
三者
锁定机制
Flexigrid
二维
锁定
SQL状态
删除数组元素
cache
类数据抓取
scrollTop
添加内容
getche
端口重定向
qmail邮件系统
mysql分区表
图像地图
监控数据
Python2.x
斐波纳契数列
文件权限
文件扩展名
雅虎
位置数
搜索方式
赞助商链接
@CopyRight 2002-2008, 1SOHU.COM, Inc. All Rights Reserved QQ:1010969229