我有一個數據模板(列表框中的很多組合框)內的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. Wpf DataTemplate事件處理程序
- 2. DataTemplate中WPF控件的事件處理程序
- 3. 如何在代碼中爲DataTemplate分配事件處理程序?
- 4. App.xaml的DataTemplate上的事件處理程序Windows Phone 8.1
- 5. 將事件處理程序附加到代碼生成的DataTemplate
- 6. HTML事件處理程序與React事件處理程序
- 7. 事件處理中事件處理程序乘以
- 8. WPF:如何處理單獨文件中的DataTemplate中的事件?
- 9. Reactive extensions處理事件處理程序
- 10. 處理程序不處理事件
- 11. 在事件處理程序
- 12. JavaScript事件處理程序
- 13. 事件處理程序TabbedPanel
- 14. Javascript事件處理程序
- 15. BackgroundWorker事件處理程序
- 16. Elixir事件處理程序
- 17. jQuery事件處理程序
- 18. MsftDiscFormat2Data事件處理程序
- 19. MFC事件處理程序
- 20. Lua事件處理程序
- 21. C#事件處理程序
- 22. JavaScript「類」中的事件處理程序
- 23. Gridview中Dropdownlist的事件處理程序
- 24. VBScript中的COM事件處理程序
- 25. ContextMenu事件處理程序中的ListBox.SelectedIndex
- 26. ASP中的事件處理程序
- 27. JQuery中的事件處理程序
- 28. Java中的事件處理程序
- 29. WPF中的事件處理程序
- 30. 編程在一個DataTemplate控制的電線事件處理