做一个医院科室级别的内部系统,好多地方要输入医师的姓名,用户意见是习惯了拼音码、五笔码搜索,以前的winform系统都是这样用的。用ComboBox显然不太适合这种100-200个项目选取,就想弄个AutoCompelete控件。
网上搜到一个System.Windows.Controls.Input.Toolkit的dll,引用,添加namespace,结果一个劲的报xaml Wpf Toolkit错误,我是引用了Xceed.Wpf.Toolkit这个库啊,当时就以为是冲突了,可尝试几次都没发现Xceed.Wpf.Toolkit有AutoCompelete控件,彻底晕菜了。
后来弄了一个Telerik的RadAutoCompleteBox,鬼佬的控件好看,但是 TextSearchPath="姓名" 的话,就必须输入中文名搜索,设置TextSearchPath=“拼音码"的话,搜索和自动填完的结果是拼音码,做不到ConboBox那种显示和值的分离,这里我需要SearchPath和DisplayPath的分离,可Tererik这个玩意DisplayPath只能用来设置下拉列表的显示。
最后只好充分发挥聪明才智了,把数据源做成合成姓名与拼音码的组合值,形如郭佳(gj),这样按拼音能搜索,按姓名也能搜索了。
--------
必须承认,Telerik没付钱,用的盗版,还是2014年的,不知道如今有没有解决这个问题。下次还是找有源码的控件用。