无法通过ContextMenu从ObservableCollection中删除项目

时间:2013-11-16 22:11:11

标签: c# xaml windows-phone-8

我有一个名为MyClassLocation的课程。 MyClass包含ObservableCollectionLocation项,Location包含名为Name的字符串属性。在MainPage.xaml我有LongListSelector(每个项目ContextMenu),其中填充了代表Location的网格。

当我从上下文控件中单击“remove”菜单项时,它通常会删除基础Location对象并更新视图。在填充LongListSelector并删除其所有项目几个周期后,无法再删除添加的一些新项目。

这是我的意思的一个例子:LLS最初包含2个项目。然后我删除这2个项目并再添加3个项目。但是,在这种情况下,我只能删除第三个,但不能删除第一个。

以下是来自ContextMenu的{​​{1}} MenuItem点击事件:

MainPage.xaml.cs

在使用private void MenuItem_Click(object sender, RoutedEventArgs e) { var selectedItem = (sender as MenuItem).DataContext as Location; for (int i = 0; i < MyClass.Locations.Count; i++) { if (MyClass.Locations[i].Name == selectedItem.Name) { MyClass.Locations.Remove(MyClass.Locations[i]); break; } } } 循环之前,我使用了这个LINQ代码并仍然遇到了同样的问题:

for

有任何解决此问题的建议吗?

1 个答案:

答案 0 :(得分:1)

如果您不使用分组选项,我建议您使用ListBox而不是LLS。它工作得更好,问题更少 顺便说一下,我也遇到了这个控件的some问题 - 可能与你的类似。
很奇怪LLS.UpdateLayout()在ListBox工作完美时也不起作用。