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

Я думал, что мой вопрос будет очень простым, но я до сих пор не нашел решения. У меня есть элемент LongListSelector и ContextMenu в каждом элементе. Когда я долгое время нажимаю элемент LongListSelector, ContextMenu будет LongListSelector с опцией удаления. Я хочу удалить выбранный элемент 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>
 </rowdefinition></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:menuitem></toolkit:contextmenu>
 </toolkit:contextmenuservice.contextmenu>
 </textblock>
 </datatemplate>
 </phone:longlistselector.itemtemplate>
 </phone:longlistselector>

 </grid>

</grid>
</phone:phoneapplicationpage>

С#:

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

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

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

1 ответ

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

licensed under cc by-sa 3.0 with attribution.