标签:
问题来源:
自定义一个ComboBox,用来显示日期。后台数据使用的是DateTime,经过Converter转化成“2015年01月01日”样子的成字符串用于显示。
但是,在实际使用中,不停的按下“【”键,光标会从以一个元素一下一下的向下移动。
经过调查,这是ComboBox的“快速检索”功能在作祟。
关于快速检索:
WPF中ListBox和ComboBox有一个“快速检索”的功能。
比如在ListBox里,按下“a”键,光标会定位到第一个首字母为“a”的Item上。
ComboBox也是一样,在拉开的状态下,按下“a”键,光标也会定位到第一个首字母为“a”的Item上。
快速检索,是在特定条件下才有效的。即:IsReadOnly为true,并且IsReadOnly也为true的时候
在MSDN上有一段说明:请参考
自定义快速检索:
比如:在自定义的ListBox或者ComboBox中,使用了图片等元素,可以用TextSearch.Text属性自定义检索的内容。
下面的示例创建一个 ComboBox 控件,该控件包含图像项而不是文本项。 IsEditable 属性设置为 true,因而在选择这些图像之一时将显示文本。
<ComboBox IsEditable="true">
<Image TextSearch.Text="Cat" Source="data\cat.png"/>
<Image TextSearch.Text="Dog" Source="data\dog.png"/>
<Image TextSearch.Text="Fish" Source="data\fish.png"/>
</ComboBox>
这样,就可以使用“c”键来快速检索到“猫”,用“d”和“F”检索到“狗”和“鱼”了。
将快速检索无效化:
方法一:可以将前述的IsReadOnly和IsReadOnly都设为true。
方法二:将IsTextSearchEnabled属性设置成false。
IsTextSearchEnabled是ItemsControl的属性,意义为:获取或设置一个值,该值指示是否在 ItemsControl 实例上启用 TextSearch。
这样就轻松的对应了我的问题。
在WPF中让ListBox和ComboBox的快速检索功能失效
标签:
原文地址:http://www.cnblogs.com/lamianxiong/p/4829429.html