WP8:带有ContextMenu的LongListSelector来删除项目

Vig*_*gor 2 c# contextmenu longlistselector windows-phone-8

我认为我的问题很简单,但我仍然没有找到解决方案.
我在每个项目中都有一个LongListSelector和一个ContextMenu.当我长按该项目时LongListSelector,ContextMenu会弹出一个删除选项.我想删除所选LongListSelector项目.我的代码:

XAML:

<phone:PhoneApplicationPage
....
xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
>

<Grid x:Name="LayoutRoot" Background="Transparent">
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <Grid x:Name="ContentPanel" Grid.Row="0" Margin="12,0,12,0">

        <phone:LongListSelector 
            Name="TestList"
            >
            <phone:LongListSelector.ItemTemplate
                >
                <DataTemplate>
                    <TextBlock Text="{Binding}">
                    <toolkit:ContextMenuService.ContextMenu>
                        <toolkit:ContextMenu Name="ContextMenu" >
                            <toolkit:MenuItem 
                                Name="Delete"  
                                Header="Delete" 
                                Click="Delete_Click"/>
                        </toolkit:ContextMenu>
                    </toolkit:ContextMenuService.ContextMenu>
                    </TextBlock>
                </DataTemplate>
                </phone:LongListSelector.ItemTemplate>
        </phone:LongListSelector>

    </Grid>

</Grid>
Run Code Online (Sandbox Code Playgroud)

C#:

namespace TestContextMenu
{
    public partial class MainPage : PhoneApplicationPage
    {
        public List<string> Items = new List<string>
        {
            "Item1",
            "Item2",
            "Item3",
            "Item4",
            "Item5",
        };

        public MainPage()
        {
            InitializeComponent();
            TestList.ItemsSource = Items;
        }


        private void Delete_Click(object sender, RoutedEventArgs e)
        {
            Items.RemoveAt(0);
            //var item = (sender as MenuItem).DataContext;
            //TestList.ItemsSource.Remove(item);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我单击"删除"时,LongListSelector虽然数据已被删除,但无法直观地删除该项目.

我读过这个,但解决方案对我的情况不起作用.任何人都知道我的代码中有什么问题请告诉我,谢谢!

cre*_*7or 6

试图取代List<string>ObservableCollection<string>.因为ObservableCollection旨在对集合中的更改做出反应.