我的ListBox
文件中有XAML
:
<ListBox ItemsSource="{Binding Path=MyList}" Name="HistoryListBox" BorderThickness="0"
Grid.Row="1" Margin="-2,0,0,0" ScrollViewer.CanContentScroll="False"
SelectionChanged="History_ListBox_Selection_Changed">
<ListBox.Resources>
<!--Defines a context menu-->
<ContextMenu x:Key="MyElementMenu">
<MenuItem Header="Delete from History" Click="MenuItemDelete_Click"/>
</ContextMenu>
<!--Sets a context menu for each ListBoxItem in the current ListBox-->
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="ContextMenu" Value="{StaticResource MyElementMenu}"/>
</Style>
</ListBox.Resources>
</ListBox>
正如您所看到的,它可以选择当用户点击它的呼叫时
History_ListBox_Selection_Changed
当用户选择右键单击ListBox
项时,ContextMenu
显示。
现在我遇到一个问题,当用户点击右键按下History_ListBox_Selection_Changed
触发器,然后ContextMenu
出现时。
如何只在左键单击鼠标时才能使History_ListBox_Selection_Changed
工作?
答案 0 :(得分:1)
更改您的代码
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="ContextMenu" Value="{StaticResource MyElementMenu}"/>
</Style>
到
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="ContextMenu" Value="{StaticResource MyElementMenu}"/>
<EventSetter Event="MouseLeftButtonUp" Handler="History_ListBox_Selection_Changed">
</EventSetter>
</Style>
然后移除SelectionChanged="History_ListBox_Selection_Changed"
。
答案 1 :(得分:0)
将“SelectionChanged”事件更改为“MouseLeftButtonUp”或“MouseLeftButtonDown”。