作者:孙英鹏 撰写时间:2019年6月7日
在学习XAML项目的时候有一个功能是模糊查询,用来查询员工信息的功能,在输入拼音的时候,会出现报错,后来我才知道我是用默认微软的输入法,从而导致模糊查询是有bug的,而别人是用的是搜狗输入法,所以才会出现错误,至于它们两个的关系是什么,就叫我们来讲一下bug问题和修复。
首先先说一下没有修改之前的代码,先用一个TextBox标签在页面上写,然后给它一个SelectionChanged作为一个事件,后台的代码就是先初始化变量,然后拼接模糊搜索条件,在获取全部数据,把表格转化为数据视图,接收最终页面显示的数据,筛选数据和查询全部数据,最后就是绑定表格数据。
关于Bug的问题是由于模糊搜索里面的拼接模糊搜索条件是用到逗号的,又加上微软输入法在输入两个不同的拼音时,是直接在搜索框里自动加上逗号,所以才会出现问题,而搜狗输入法是在输入拼音时,是不出现在输入框,是要点击回车键才会出现在搜索框里。所以一般我们是不用微软输入法的,而是用搜狗输入法。
图1:
为了不要有报错问题和解决输入法的兼容性,在解决方法时,我们可以在搜索框代码里添加上回车键代码,把SelectionChanged事件更改为回车键代码,代码是KeyDown,这样输入拼音的时候,直接点击回车键,就不会报错了,这样你用微软的输入法和搜狗的输入法就很方便了,对于回车键代码我也是网上找来的,我只是想告诉大家问题的解决性。
XAML代码:
<TextBlock Text="搜索:"
Margin="30,5,3,0"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
Foreground="Blue"/>
<TextBox x:Name="txt_Select"
ToolTip="请输入:员工编号\姓名\负责人\职务\联系电话\工作状态\员工类型\性别\身份证号\年龄\联系地址\电子邮件\"
Margin="0,5,10,0"
Width="341"
Height="24"
KeyDown="txt_Select_KeyDown" />