我有一个longlistselector并使用contextmenu。使用NavigationService时遇到问题。
对于每个列表项,都有一个上下文菜单,用于删除或编辑项目,对于预先存在的项目列表,它似乎正常工作。
但是,如果我添加一个新人,向该人添加一个新项目,编辑它,然后添加另一个项目,当我尝试编辑第二个项目时,会选择第一个项目。
是一个BUG?
我的Xaml代码如下所示:
<DataTemplate x:Key="LongListSelectorItemTemplate">
<StackPanel Orientation="Horizontal" Margin="4,4">
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu cal:Action.TargetWithoutContext="{Binding DataContext, ElementName=LayoutRoot}">
<toolkit:MenuItem Header="Edit" cal:Message.Attach="[Event Tap] = [Action ContextMenuEdit_EventTap($datacontext)]" />
<toolkit:MenuItem Header="Delete" cal:Message.Attach="[Event Tap] = [Action ContextMenuDelete_EventTap($datacontext)]" />
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
<TextBlock Text="{Binding Name}" />
<TextBlock Text="{Binding Name2}" />
</StackPanel>
</DataTemplate>
答案 0 :(得分:2)
我不确定这是否是您问题的解决方案,但我遇到了同样的问题而且对我有用。
为phoneApplicationPage(xaml顶部)添加名称
<phone:PhoneApplicationPage
......
Your settings
......
x:Name="Page">
并更改此代码:
<toolkit:ContextMenu cal:Action.TargetWithoutContext="{Binding DataContext, ElementName=LayoutRoot}">
进入这个:
<toolkit:ContextMenu cal:Action.TargetWithoutContext="{Binding ElementName=Page, Path=DataContext}">