如何将 UI 控件事件绑定到 ViewModel(MVVM)?
我的应用程序中有 AutoCompleteBox,并且已将其 ItemSource/SelectedItem 属性绑定到 ViewModel。
现在我想绑定事件,但没有找到将 AutoCompeletBox KeyUP/KeyDown 事件与 ViewModel 绑定的方法,我该如何实现它?
我在应用程序中有一个按钮,我使用 RelayCommand 来绑定该按钮的命令(它正在工作)。
您能给我详细的绑定示例吗?
I have AutoCompleteBox in my application and I have binded its ItemSource/SelectedItem property to ViewModel.
Now I want to bind event and I am not getting the way to bind AutoCompeletBox KeyUP/KeyDown event with ViewModel how do i acheive it??
I have a Button in application and I have used RelayCommand to bind Command of that Button(It's Working).
Can you please give me details exaple of binding?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您使用 GalaSoft MVVM 工具包,则可以使用 EventToCommand 将 KeyUp 事件绑定到命令。在这里查看 - http://geekswithblogs.net/lbugnion/archive/2009/11/05/mvvm-light-toolkit-v3-alpha-2-eventtocommand-behavior.aspx
您可能还想更改 UpdateSourceTrigger 属性在自动完成框的绑定表达式中将其设置为“Property Changed”。
默认绑定行为位于 LostFocus 上,因此这将立即更新您的 ViewModel。
If you are using the GalaSoft MVVM toolkit, you can use EventToCommand to bind the KeyUp event to a command. Check it out here - http://geekswithblogs.net/lbugnion/archive/2009/11/05/mvvm-light-toolkit-v3-alpha-2-eventtocommand-behavior.aspx
You might also want to change the UpdateSourceTrigger property in the binding expression of the auto-complete box to "Property Changed"
The default binding behavior is on LostFocus, so this will update your ViewModel instantly.
KeyUp / KeyDown 事件处理应该是 View 实现的一部分。然后,您可以在 View 中创建逻辑,该逻辑将使用绑定或命令从 ViewModel 获取自动补全的相关值。
在任何认为所有逻辑都应该在 VM 中的纯粹主义者开始投反对票之前。我相信逻辑,那就是View应该留在View中。
KeyUp / KeyDown event handling should be part of View implementation. Then you can create logic in View, that will use binding or commands to get related values for autocompletion from or to ViewModel.
And before any purist, who thinks all logic should be in VM starts downvoting. I believe logic, that is bound to View should stay in View.