SilverLight 条码 扫描枪 MVVM

时间:2020-12-30 17:28:26

目前做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