我有一个名为MyClass
和Location
的课程。 MyClass
包含ObservableCollection
个Location
项,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
有任何解决此问题的建议吗?
答案 0 :(得分:1)
如果您不使用分组选项,我建议您使用ListBox而不是LLS。它工作得更好,问题更少
顺便说一下,我也遇到了这个控件的some问题 - 可能与你的类似。
很奇怪LLS.UpdateLayout()在ListBox工作完美时也不起作用。