C# 如何为listView中的每个项目实现上下文菜单

C# 如何为listView中的每个项目实现上下文菜单,c#,listview,windows-phone-8.1,windows-8.1,win-universal-app,C#,Listview,Windows Phone 8.1,Windows 8.1,Win Universal App,我正在编写一个通用windows 8.1应用程序,我对上下文菜单的经验非常有限,我有一个列表视图,当用户添加条目时,它会添加一些项目。我希望列表视图中的每个项目都具有相同的上下文菜单,因此我制作了一个弹出式菜单资源 <Page.Resources> <MenuFlyout x:Name="flymenDelete"> <MenuFlyoutItem Text="Delete" Click="MenuFlyoutItem_Click"/&

我正在编写一个通用windows 8.1应用程序,我对上下文菜单的经验非常有限,我有一个
列表视图
,当用户添加条目时,它会添加一些项目。我希望
列表视图中的每个项目都具有相同的上下文菜单,因此我制作了一个弹出式菜单资源

<Page.Resources>
    <MenuFlyout x:Name="flymenDelete">
        <MenuFlyoutItem Text="Delete"    Click="MenuFlyoutItem_Click"/>
    </MenuFlyout>
</Page.Resources>
问题是它显示了上下文菜单,但只针对实际的
列表视图
控件,而不是
列表视图
中的项目。如何使此关联菜单仅在右键单击
ListViewItems
时显示,请记住这些项不是硬编码的,而是使用以下代码添加的

private void DisplayHours()
{
    for (int i = 0; i < HList.Count(); i++)
    {
        lstvwHours.Items.Add(this.HList[i].display());
    }
}
private void DisplayHours()
{
对于(int i=0;i
您可以使用ListView的ItemTemplate属性向列表项添加弹出按钮

只需为项目定义DataTemplate,它将应用于每个列表项目:

<ListView x:Name="lstvwHours">
    <ListView.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding}" FlyoutBase.AttachedFlyout="{StaticResource flymenDelete}" RightTapped="lstvwHours_RightTapped" />
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

private void DisplayHours()
{
    for (int i = 0; i < HList.Count(); i++)
    {
        lstvwHours.Items.Add(this.HList[i].display());
    }
}
<ListView x:Name="lstvwHours">
    <ListView.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding}" FlyoutBase.AttachedFlyout="{StaticResource flymenDelete}" RightTapped="lstvwHours_RightTapped" />
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>