我有一个ListBox,其数据绑定到List&lt;&gt;对象。在ListBox_SelectionChanged事件上,我正在检查所选索引是否是List&lt;&gt;的最后一项。如果selectedIndex是最后一项,那么我想删除该项并调用我的Web服务以向列表中添加更多项。但如果selectedIndex不是最后一项,我想导航到一个页面。我的问题是如果selectedTndex是最后一项,它会去除最后一项,但它再次回到相同的“if”条件,我检查selectedIndex是否是最后一项。因此,它不是调用我的服务,而是导航到下一页。任何人都可以告诉我为什么再次调用if()条件以及如何处理它?</ p>
答案 0 :(得分:1)
我认为当您从列表框中删除项目时,他(ListBox控件)会自动选择上一项,这会触发SelectionChanged事件。所以你可以在(伪代码)之前取消订阅此事件:
bool isLast = ... ;
if (isLast)
{
listBox.SelectionChanged -= OnSelectionChanged;
Remove(item);
listBox.SelectionChanged += OnSelectionChanged;
}
因此,当您删除项目时,此事件将不会再次触发。此外,您可能希望清除选择:
listBox.SelectedIndex = -1;
答案 1 :(得分:0)
也许如果你清除列表框并再次加载它会有所帮助。