Взаимодействие WPF в стиле вызывает команды на модели представления
Возможный дубликат:
Как добавить Blend Behavior в Style Setter
когда я использую триггер взаимодействия в стиле, я получаю следующую ошибку: "триггеры не являются присоединяемым элементом стиля типа". Любое объяснение, что на самом деле означает эта ошибка и как ее решить.
Для справки взгляните на пример EventToCommand инструментария MVVM Light.
В этом конкретном случае я использую элемент управления Timeline из Infragistics, который представляет события как EventTitle, и когда щелкает EventTitle, я хотел бы вызвать команду (обратите внимание, что элемент управления Timeline не определяет никакого события, такого как EventTitleClicked). В настоящее время я могу достигнуть функциональности, используя события и вызывая мой метод ViewModel из кода позади, вместо этого я хотел бы вызвать команду непосредственно из xaml.
<Style x:Key="EventTitleTopStyle" TargetType="igTl:EventTitle">
<!-- The following is not working -->
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseLeftButtonDown">
<!--<cmd:EventToCommand Command="{Binding MyCommand}" />-->
</i:EventTrigger>
</i:Interaction.Triggers>
<!-- Using event setter instead to achieve the same -->
<EventSetter Event="MouseLeftButtonDown" Handler="TopTitleMouseLeftButtonDown" />
....
2 ответа
<interactivity:Interaction.Triggers>
<interactivity:EventTrigger EventName="MouseDoubleClick">
<behaviours:ExecuteCommandAction Command="{Binding Path=DataContext.YourCommand, RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type UserControl}}}"
CommandParameter="{Binding }"/>
</interactivity:EventTrigger>
</interactivity:Interaction.Triggers>
<TextBox x:Name="EditableControlTextBox" Loaded="RoomTextBox_Loaded">
<interactivity:Interaction.Triggers>
<interactivity:EventTrigger EventName="LostFocus">
<!--<cmd:EventToCommand Command="{Binding MyCommand}" />-->
</interactivity:EventTrigger>
</interactivity:Interaction.Triggers>
</TextBox>