windows phone 7 -删除列表框中包含List<>c#中基于条件的对象

本文关键字:于条件 对象 条件 List 删除 phone 删除列 列表 windows 包含 | 更新日期: 2023-09-27 17:54:00

我有一个ListBox的数据绑定到一个列表<>的对象。在ListBox_SelectionChanged事件中,我正在检查所选索引是否为List<>的最后一项。如果selectedIndex是最后一个项目,那么我希望删除该项目并调用web服务向列表添加更多项目。但是如果selecteindex不是最后一项,那么我想要导航到一个页面。我的问题是,如果selectedIndex是最后一项,它去并删除最后一项,但它再次回到相同的"if"条件,我再次检查selectedIndex是否为最后一项。所以,它不是调用我的服务,而是导航到下一页。有人能告诉我为什么它再次调用if()条件以及如何处理它吗?

windows phone 7 -删除列表框中包含List<>c#中基于条件的对象

我认为当你从列表框中删除你的项目时,他(列表框控件)会自动选择上一个项目,这将触发SelectionChanged事件。所以你可以取消订阅这个事件(在伪代码中):

bool isLast = ... ;
if (isLast)
{
   listBox.SelectionChanged -= OnSelectionChanged;
   Remove(item);
   listBox.SelectionChanged += OnSelectionChanged;
}

因此,当您将删除项目时,此事件将不会再次触发。另外,您可能想要清除selection:

listBox.SelectedIndex = -1;

如果您清除列表框并重新加载它可能会有所帮助。