Mam styl i chcę powiązać polecenie z EventSetter
z Handler
z RelativeSource
. Polecenie znajduje się w viewModel.Moduł wywołania zdarzenia wpf powiązanie stylu
<Style x:Key="ItemTextBlockEventSetterStyle" TargetType="{x:Type TextBlock}">
<EventSetter Event="MouseLeftButtonDown"
Handler="{Binding TextBlockMouseLeftButtonDownCommand,
RelativeSource={RelativeSource Self}}"/>
</Style>
Problemem jest to, że pojawia się błąd, że coś jest nie tak z tego (może to nie jest możliwe, aby zrobić to w taki prosty sposób)
Mam google dużo wcześniej i znalazłem the AttachedCommandBehaviour
, ale myślę, że to nie działa ze stylem.
Czy możesz podać wskazówki, jak rozwiązać ten problem?
Aktualizacja 13/10/2011
Znalazłem to w EventToCommand
przykład programu MVVM Toolkit światła:
<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>
Ale tutaj, wiązanie nie jest w stylu. Jak mogę umieścić ten EventToCommand
w stylu przycisku?
Niezły pomysł na wykonanie polecenia wykonania zdarzenia, ale jutro spróbuję AttachCommandBehavior! Wielkie dzięki za odpowiedź! –
AttachCommandBehavior działa idealnie. Jedna rzecz, której nie jestem pewien, jak rozwiązać. Chcę wiązać polecenia nie tylko w przypadku jednego zdarzenia i znalazłem takie rozwiązanie: http://stackoverflow.com/questions/926451/how-can-i-attach-two-attached-behaviors-to-one- xaml-element Jest naprawdę dobry, ale jak mogę umieścić ten CommandBehaviorCollection w stylu? Z góry dziękuję za odpowiedź! –
@ ZoltánBarna Wygląda na to, że nie działa w stylach ani szablonach. – Rachel