Tengo WPF ComboBox dentro de una plantilla de datos (una gran cantidad de cuadros combinados en el cuadro de lista) y quiero manejar el botón enter. Sería fácil si fuera, por ejemplo un botón - Usaría el comando + Ruta de enlace relativa, etc. Desafortunadamente, no tengo idea de cómo manejar la pulsación de tecla con un comando o cómo configurar el controlador de eventos desde la plantilla. ¿Alguna sugerencia?Controlador de eventos en DataTemplate
9
A
Respuesta
4
He resuelto mi problema usando un controlador de eventos habitual en el que paso por el árbol visual, encuentro el botón correspondiente y lo llamo. Si alguien más tiene el mismo problema, publique un comentario y le proporcionaré más detalles sobre la realización.
UPD
Aquí está mi solución:
que busco el árbol visual de un botón y de ejecutar el comando asociado con el botón.
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
Puede utilizar el EventSetter en el estilo que está configurando la plantilla con:
<Style TargetType="{x:Type ListBoxItem}">
<EventSetter Event="MouseWheel" Handler="GroupListBox_MouseWheel" />
<Setter Property="Template" ... />
</Style>
0
Este artículo tiene una forma de enrutar cualquier Event
a Command
http://nerobrain.blogspot.nl/2012/01/wpf-events-to-command.html
Cuestiones relacionadas
- 1. cómo agregar controlador de eventos con el control en DataTemplate en el diccionario de recursos
- 2. Cancelar onbeforeunload controlador de eventos?
- 3. añadir un controlador de eventos
- 4. jQuery controlador de eventos en cola
- 5. Delphi: cómo asignar dinámicamente un controlador de eventos sin sobrescribir el controlador de eventos existente?
- 6. Orden de controlador de eventos de Javascript
- 7. Adjuntar controlador de eventos con controlador nuevo vs Asignarlo directamente
- 8. ejecución Prevenir de controlador de eventos padre
- 9. Controlador de eventos de Jquery multiselección
- 10. Controlador de eventos y pérdidas de memoria
- 11. JavaScript argumentos de controlador de eventos
- 12. Controlador de eventos de almacenamiento HTML5/JS
- 13. C# eliminación de un controlador de eventos
- 14. Eliminación de controlador de eventos anónimo
- 15. VB.NET 2005 - Controlador de eventos "global"?
- 16. WinForms: desactivar temporalmente un controlador de eventos
- 17. ¿Hay eventos antes de ejecutar un controlador?
- 18. Añadir controlador de eventos para ListView Items_added
- 19. Teclee la tecla presionó controlador de eventos
- 20. Controlador de eventos es siempre nulo
- 21. Controlador de eventos dinámicamente establecido usando DataTrigger
- 22. toca el controlador de eventos para UIImageView
- 23. Controlador global de eventos del mouse
- 24. Cómo quitar un controlador de eventos lambda
- 25. Cómo desenlazar un controlador de eventos específicos
- 26. ¿Debo eliminar un controlador de eventos?
- 27. TaskScheduler.UnobservedTaskException controlador de eventos nunca se desencadena
- 28. jQuery controlador de eventos que no trabaja
- 29. DataTemplate + MVVM
- 30. ContentPresenter DataTemplate