我有一个数据模板(列表框中的很多组合框)内的WPF组合框,并且我想处理输入按钮。如果它是例如一个按钮 - 我会使用Command + Relative绑定路径等。不幸的是,我不知道如何使用Command处理按键或如何从模板设置事件处理程序。 有什么建议吗?DataTemplate中的事件处理程序
9
A
回答
4
我已经通过使用通常的事件处理程序解决了我的问题,其中我通过可视化树遍历,找到相应的按钮并调用它的命令。 如果其他人有同样的问题,请发表评论,我会提供更多的实现细节。
UPD
这里是我的解决方案:
我搜索的可视化树的一个按钮,比执行与按钮相关的命令。
View.xaml:
<ComboBox KeyDown="ComboBox_KeyDown"/>
<Button Command="{Binding AddResourceCommand}"/>
View.xaml.cs:
private void ComboBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
var parent = VisualTreeHelper.GetParent((DependencyObject)sender);
int childrenCount = VisualTreeHelper.GetChildrenCount(parent);
for (int i = 0; i < childrenCount; i++)
{
var child = VisualTreeHelper.GetChild(parent, i) as Button;
if (null != child)
{
child.Command.Execute(null);
}
}
}
}
10
您可以使用样式中EventSetter您正在使用设置模板:
<Style TargetType="{x:Type ListBoxItem}">
<EventSetter Event="MouseWheel" Handler="GroupListBox_MouseWheel" />
<Setter Property="Template" ... />
</Style>
0
本文有办法将任何Event
路由到Command
http://nerobrain.blogspot.nl/2012/01/wpf-events-to-command.html
相关问题
- 1. DataTemplate中WPF控件的事件处理程序
- 2. 如何处理WPF DataTemplate中的事件?
- 3. 如何在代码中为DataTemplate分配事件处理程序?
- 4. App.xaml的DataTemplate上的事件处理程序Windows Phone 8.1
- 5. 将事件处理程序附加到代码生成的DataTemplate
- 6. 来自DataTemplate的WinRT事件处理
- 7. HTML事件处理程序与React事件处理程序
- 8. 的事件处理程序
- 9. 事件处理中事件处理程序乘以
- 10. WPF:如何处理单独文件中的DataTemplate中的事件?
- 11. 处理程序不处理事件
- 12. Reactive extensions处理事件处理程序
- 13. 在事件处理程序中删除jquery事件处理程序
- 14. C#事件处理程序
- 15. MFC事件处理程序
- 16. MsftDiscFormat2Data事件处理程序
- 17. 事件处理程序
- 18. wpf事件处理程序
- 19. JavaScript事件处理程序
- 20. 事件处理程序TabbedPanel
- 21. DRYing事件处理程序
- 22. 事件处理程序
- 23. Elixir事件处理程序
- 24. Javascript事件处理程序
- 25. BackgroundWorker事件处理程序
- 26. 在事件处理程序
- 27. jQuery事件处理程序
- 28. JavaScript事件处理程序
- 29. jQuery事件处理程序
- 30. Lua事件处理程序