从ViewModel读取键盘输入

时间:2013-11-18 08:20:45

标签: c# wpf mvvm unity-container prism

我正在使用带有WPF和Prism(统一)的MVVM模式。我有一个工具正在读取用户扫描的条形码,并且根据扫描的条形码类型,工具正在做一些事情。现在我有一个绑定到属性的文本框。我想在viewmodel中使用扫描条形码的内容填充我的属性,而不使用文本框或类似文件。我想直接填写酒店。有没有办法做到这一点?或者也许有人知道如何解决这个问题?

亲切的问候

2 个答案:

答案 0 :(得分:1)

根据您的评论,您要做的是处理keydown事件。

请在此处阅读:code project scanner reader。他做了你想做的事,并展示了在哪里/在哪里处理:)

修改
我已经回答了另一个可能相关的关键事件问题。请随意查看at my other answer,讨论i:interactionInputBindings,然后返回另一篇关于处理关键事件的文章:up/down on datepicker,并讨论背后的代码/ mvvm接近。

希望你会发现它们很有用。

答案 1 :(得分:0)

好吧,我不确定我是否以正确的方式获取它,但您可以使用EventManager捕获所有键盘输入。

EventManager.RegisterClassHandler(typeof(Window),
     Keyboard.KeyUpEvent,new KeyEventHandler(keyUp), true);


private void keyUp(object sender, KeyEventArgs e)
{
      if(e.Key == Key.OemComma)
             MessageBox.Show("Gotcha");
}

另一种选择是创建一个只读文本框,但它与现在或多或少相同。