.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
收藏文章
精彩图集
精彩文章
- 暂无记录。
热门标签
枚举窗口句柄
.NET中文乱码
readline
PyV8
asset文件夹
PHP安全
链接名称
逗号
字符终端
switch语句
php php中动
PHP执行时间
同源
autoload
安装deb包
北京时间
页面图片处理
排列
传递
get_transien
DB2和
包收集
seo
复制文件夹
PHP中
php 一
卸载VS2011
文件恢复
linux开发环境
下拉树
SQLServer200
jsp,换域名
js与css交互
触屏
on
PHP多线程
联网
oralce
NET
排序
体验
数据库目录
机下
(1)
空间
后台发送短信
获取文件行数
designer
上传表单
所有表
回收
img
哈夫曼算法
相对窗口
判断是手机
备份文件
访问的
MariaDB
技巧
js对话框
赞助商链接
@CopyRight 2002-2008, 1SOHU.COM, Inc. All Rights Reserved QQ:1010969229