ContextMenu に少し問題があります。ContextMenu をクリックすると、LongList でアイテムが選択されないことがあります。これにより、ユーザーがどのアイテムをクリックしたのかがわからないという問題が発生します。最初にアイテムをクリックしてからコンテキストメニューを保持すると機能しますが、ユーザーがクリックして保持するたびにこれを機能させるにはどうすればよいですか?
ここに私のxamlがあります
<phone:LongListSelector x:Name="List"
Margin="0,0,-12,0"
ItemsSource="{Binding ListItems}"
Height="470" Tap="List_OnTap">
<phone:LongListSelector.ItemTemplate>
<DataTemplate>
<StackPanel Margin="0,0,0,17">
<TextBlock Text="{Binding Name}"
TextWrapping="Wrap"
Style="{StaticResource PhoneTextExtraLargeStyle}">
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu IsZoomEnabled="false">
<toolkit:MenuItem Header="Add as favorit"
Click="AddFavorite" />
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</TextBlock>
</StackPanel>
</DataTemplate>
</phone:LongListSelector.ItemTemplate>
</phone:LongListSelector>
そして私のコードビハインド
private void AddFavorite(object sender, RoutedEventArgs e)
{
ItemViewModel obj = List.SelectedItem as ItemViewModel;
if (obj == null) return;
NavigationService.Navigate(new Uri("/Page.xaml?id=" + obj.Id + "&fav=true", UriKind.Relative));
}