【发布时间】:2017-06-28 07:50:21
【问题描述】:
我有一个带有 ListView 的 MenuItem。我想要的是当我单击 ListView 项目时,会触发一些命令。这是我的代码:
<MenuItem Header="?">
<ListView ItemsSource="{Binding CommentTemplateList}" BorderThickness="0" SelectedItem="{Binding SelectedCommentTemplate, UpdateSourceTrigger=PropertyChanged}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<i:InvokeCommandAction Command="{Binding PasteTemplate}"
CommandParameter="{Binding SelectedCommentTemplate}" />
</i:EventTrigger>
</i:Interaction.Triggers>
<ListView.View>
<GridView>
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Caption}" ToolTip="{Binding Description}" HorizontalAlignment="Center"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
</MenuItem>
一切都很好,但是命令 PasteTemplate 仅在选择更改时触发,并且每次单击该项目时我都需要触发它。如果我将 EventName 更改为列表中的一个 (https://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.selector.aspx),例如 MouseDown,则该命令根本不会触发。
【问题讨论】:
标签: c# wpf listview eventtrigger