【问题标题】:List view Context Menu not displayed when clicked continuously连续单击时不显示列表视图上下文菜单
【发布时间】: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


【解决方案1】:

正如我的评论中提到的,尝试这样的事情:

<ListView >
    <ListView.ItemTemplate>
        <DataTemplate>
            <ListViewItem>
                <ListViewItem.ContextMenu>
                    <ContextMenu >
                        <MenuItem />
                        <MenuItem />
                         ...
                    </ContextMenu>
                </ListViewItem.ContextMenu>
            </ListViewItem>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

我不知道这是否会解决它,所以请采纳这个建议:)

【讨论】:

  • 我明白了,我刚刚更新了我的问题,将上下文菜单与相应的项目链接
猜你喜欢
  • 2012-09-29
  • 1970-01-01
  • 1970-01-01
  • 2019-05-08
  • 1970-01-01
  • 2016-03-05
  • 2021-11-02
  • 2010-09-21
  • 1970-01-01
相关资源
最近更新 更多