0

我正在开发一个 Windows Phone 应用程序。一旦从中选择了一个列表项,就必须清除一个列表。我用过Clear(),但它给了我一些例外。list.Clear()在内部调用list.SelectionChanged事件吗?如何解决这个问题呢?

4

3 回答 3

1

我只是建议对您的 SelectionChanged 事件进行更改以保持同步。

private void SelectionChanged_Event()
{
    if(!list.Any()) // Or any similar check to see if it contains anything
        return;

    // Then goes your rest of the code.
}

它应该避免您遇到的任何异常。但是,您应该提到异常,以便我们可以进一步分析它。

于 2013-07-30T07:24:53.300 回答
1

尝试分离/附加事件

list.SelectionChanged -= yourevent;

list.Clear();

list.SelectionChanged += yourevent;
于 2013-07-30T07:10:09.110 回答
0

不确定这是否适用于您的移动环境,但应该是一样的。

在事件上设置一个中断selectionchanged,并查看它是否会中断该事件。我的猜测是你是对的,它确实触发了selectionchanged事件。

在事件中编写代码selectionchanged以检查所选项目的数量,如果没有(即我们没有主动选择列表中的任何内容),则退出该函数。

在 vb.net 中它将是:

If mylist.selecteditems.count = 0 then exit **sub/function**<- 以适用者为准

于 2013-07-30T07:13:27.513 回答