删除包含List<>的ListBox的最后一项基于C#中条件的对象

时间:2013-01-16 12:16:21

标签: c# windows-phone-7

我有一个ListBox,其数据绑定到List&lt;&gt;对象。在ListBox_SelectionChanged事件上,我正在检查所选索引是否是List&lt;&gt;的最后一项。如果selectedIndex是最后一项,那么我想删除该项并调用我的Web服务以向列表中添加更多项。但如果selectedIndex不是最后一项,我想导航到一个页面。我的问题是如果selectedTndex是最后一项,它会去除最后一项,但它再次回到相同的“if”条件,我检查selectedIndex是否是最后一项。因此,它不是调用我的服务,而是导航到下一页。任何人都可以告诉我为什么再次调用if()条件以及如何处理它?<​​/ p>

2 个答案:

答案 0 :(得分:1)

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

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

因此,当您删除项目时,此事件将不会再次触发。此外,您可能希望清除选择:

listBox.SelectedIndex = -1;

答案 1 :(得分:0)

也许如果你清除列表框并再次加载它会有所帮助。