动态地为ListView中的每个ListViewItem创建一个ContextMenu?

Mat*_*zen 3 wpf

我目前在ListView上有一个ContextMenu,其视图样式设置为"GridView".但是,这给我带来了麻烦,因为您可以右键单击ListView顶部的可视列以显示上下文菜单.

我只希望上下文菜单出现在列表中的所有项目上,我不想编写一个方法来为每个列表添加一个新的上下文菜单.

这样做有一种聪明的方法吗?也许通过某种模板?哪种方法最好?

Jos*_*osh 8

您可以创建将应用于列表视图中的项目的样式,而不是列表视图本身.就像是:

<ListView>
    <ListView.ItemContainerStyle>
        <Style TargetType="ListViewItem">
            <Setter Property="ContextMenu">
                <Setter.Value>
                    <ContextMenu>
                        <MenuItem Header="Send Email" />
                        <MenuItem Header="Delete" />
                    </ContextMenu>
                </Setter.Value>
            </Setter>
        </Style>
    </ListView.ItemContainerStyle>
</ListView>
Run Code Online (Sandbox Code Playgroud)