Tengo un estilo, y quiero vincular un comando al EventSetter
's Handler
con RelativeSource
. El comando está en viewModel.vinculador del manejador de eventos wpf en estilo
<Style x:Key="ItemTextBlockEventSetterStyle" TargetType="{x:Type TextBlock}">
<EventSetter Event="MouseLeftButtonDown"
Handler="{Binding TextBlockMouseLeftButtonDownCommand,
RelativeSource={RelativeSource Self}}"/>
</Style>
El problema es que me da un error, porque algo está mal con esto (tal vez no es posible hacer esto de tal manera fácil)
Googled mucho antes, y lo encontró el AttachedCommandBehaviour
, pero creo que no funciona con estilo.
¿Podría dar algunos consejos sobre cómo resolver este problema?
actualización 13/10/2011
encontré esto en el programa EventToCommand
ejemplo MVVM Light Toolkit:
<Button Background="{Binding Brushes.Brush1}"
Margin="10"
Style="{StaticResource ButtonStyle}"
Content="Simple Command"
Grid.Row="1"
ToolTipService.ToolTip="Click to activate command">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<cmd:EventToCommand Command="{Binding SimpleCommand}" />
</i:EventTrigger>
<i:EventTrigger EventName="MouseLeave">
<cmd:EventToCommand Command="{Binding ResetCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
Pero aquí, la unión no es en el estilo. ¿Cómo puedo poner esto EventToCommand
al estilo del botón?
¡Es una buena idea poner la ejecución del comando en el evento, pero intentaré el AttachCommandBehavior mañana! ¡Muchas gracias por la respuesta! –
AttachCommandBehavior funciona perfectamente. Una cosa que no estoy seguro de cómo resolver. Quiero vincular comandos no solo para un evento, y encontré este tipo de solución: http://stackoverflow.com/questions/926451/how-can-i-attach-two-attached-behaviors-to-one- xaml-element Es realmente bueno, pero ¿cómo puedo poner CommandBehaviorCollection en el estilo? ¡Gracias de antemano por su respuesta! –
@ ZoltánBarna Parece que no funciona en Estilos o Plantillas – Rachel