WP8: LongListSelector с ContextMenu для удаления элемента

Я думал, что мой вопрос будет очень простым, но я все еще не нашел решения.
у меня есть 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>

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);
        }
    }
}

Когда я нажимаю Удалить, элемент в LongListSelector невозможно удалить визуально, хотя данные были удалены.

Я прочитал это, но решение не работает для моей ситуации. Кто-нибудь знает, что не так в моем коде, пожалуйста, дайте мне знать, спасибо!

1 ответ

Решение

Попробуй заменить List<string> с ObservableCollection<string>, Потому что ObservableCollection предназначен для реагирования на изменения в коллекции.

Другие вопросы по тегам