【发布时间】:2020-02-07 20:56:42
【问题描述】:
我正在使用 WPF 开发一个聊天应用程序(我是个菜鸟),我创建了一个列表视图,以显示最近聊天的联系人,如下图所示。现在我正在显示一个上下文菜单,以便用户应该能够离开/静音/加注联系人。这里发生的情况是,在某些操作后使用此上下文菜单不断删除此列表中的联系人时,它不起作用。请在下面找到有关代码的代码并在下面查看
这是我的场景:
<ListView x:Name="StarredContactsList" Grid.Row="1" ItemsSource="{Binding Source={StaticResource StarredContacts}}" HorizontalAlignment="Stretch" Cursor="Hand"
ItemContainerStyle="{StaticResource myLBStyle}" VerticalAlignment="Top" ScrollViewer.HorizontalScrollBarVisibility="Disabled" Margin="0,-5,0,0" MouseLeftButtonUp="OnSelect_StarredContact">
<ListView.Resources>
<ContextMenu x:Key="StarredListViewContextMenu" Background="White" StaysOpen="False" Margin="0,-15">
<MenuItem Header="Close Conversation" FontSize="12" Height="25" Visibility="{Binding IsPersonal,Converter={StaticResource BooleanToVisibilityConverter}}" Click="LeaveMenuItem_Click"/>
<MenuItem Header="{Binding FullName}" HeaderStringFormat="Leave #{0}" Height="25" FontSize="12" Visibility="{Binding IsChannel, Converter={StaticResource BooleanToVisibilityConverter}}" Click="LeaveMenuItem_Click"/>
<MenuItem FontSize="12" Header="{Binding MuteHeader}" Height="25" Click="MuteMenuItemClicked"/>
<MenuItem FontSize="12" Header="Unstar Conversation" Height="25" Click="StarMenuItemClicked" Foreground="Black"/>
</ContextMenu>
</ListView.Resources>
没有后台显示上下文菜单
【问题讨论】:
-
如果需要检查任何其他代码或文件,请提及我将通过上传所需文件来编辑我的问题
-
此上下文菜单适用于整个
ListView。您需要的是列表中每个项目的上下文菜单,这是我的第一个猜测。请注意,右键单击时焦点不会更改到所选项目,但始终会回到第一个项目。这可能会导致每次都将操作应用于第一个项目。 -
是的,它被小心了! alough 焦点转到上一个项目/列表视图(比如说)没有变化
标签: c# wpf listview contextmenu