C# 如何为listView中的每个项目实现上下文菜单
我正在编写一个通用windows 8.1应用程序,我对上下文菜单的经验非常有限,我有一个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"/&
列表视图
,当用户添加条目时,它会添加一些项目。我希望列表视图中的每个项目都具有相同的上下文菜单,因此我制作了一个弹出式菜单资源
<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>