DataTemplate 中的事件处理程序
我在数据模板中有 WPF ComboBox(列表框中有很多组合框),我想处理输入按钮。如果它是一个按钮,那就很容易了 - 我会使用命令+相对绑定路径等。不幸的是,我不知道如何使用命令处理按键或如何从模板设置事件处理程序。 有什么建议吗?
I have WPF ComboBox inside a data template (a lot of comboboxes in listbox) and I want to handle enter button. It would be easy if it was e.g. a button - I would use Command + Relative binding path etc. Unfortunately, I have no idea how handle key press with a Command or how to set event handler from template.
Any suggestions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以按照设置模板的样式使用 EventSetter:
You can use the EventSetter in the style you are setting the template with:
我通过使用常用的事件处理程序解决了我的问题,在该处理程序中,我遍历可视化树,找到相应的按钮并调用它的命令。
如果其他人也有同样的问题,请发表评论,我将提供更多实现细节。
UPD
这是我的解决方案:
我在可视化树中搜索按钮,然后执行与按钮关联的命令。
View.xaml:
View.xaml.cs:
I've solved my problem by using a usual event handler where I walk through the visual tree, find corresponding button and call it's command.
If anybody else has the same problem, please post a comment and I'll provide more details of realization.
UPD
Here is my solution:
I search the visual tree for a button and than execute command associated with button.
View.xaml:
View.xaml.cs:
本文提供了一种将任何
Event
路由到Command
http://nerobrain.blogspot.nl/2012/01/wpf-events-to-command.html
This article has a way to route any
Event
toCommand
http://nerobrain.blogspot.nl/2012/01/wpf-events-to-command.html
另一个简单的选择是像这样派生控件
如果您只是希望控件始终像这样运行,而不是在 OnApplyTemplate() 中添加事件,您当然可以直接重写虚拟方法,例如
Another simple option is to derive the control like this
If you just want the control to behave always like this, instead of adding the events in OnApplyTemplate() you can of course directly override the virtual methods e.g.