SilverLight 条码 扫描枪 MVVM(转载)
目前做SL项目时,遇到条码的问题。
客户需要通过条码来加快工作效率以及减少错误。有条码,自然便引入扫描枪这个东西。不解释。
关键点是:扫描枪每次扫描完毕会触发回车
这是解决问题的关键!
现有两种情景:1.单个条码的处理 2.条码批处理
先说情景2,这种比较简单
关键点是设置TextBox的AcceptsReturn属性为True,就是换行,使得每个条码独占一行以便于我们对数据的处理。
这样没扫描一个条码就会增加一行。最后通过Command去处理就可以了。
情景1:在一个输入框中输入条码,获取该条码对应的信息
这个的关键点是在条码扫描完毕如何自动的调用Command。
这里便引入更外一个话题:TextBox没法绑定Command,不解释。
解决办法就是触发器
1: <TextBox>
2: <i:Interaction.Triggers>
3: <i:EventTrigger EventName="TextInput">
4: <i:InvokeCommandAction Command="{Binding BarCommand, Mode=OneWay}"/>
5: </i:EventTrigger>
6: </i:Interaction.Triggers>
7: </TextBox>
记得引用命名空间xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
这里选用的事件是TextInput