1

我在一些应该非常简单的事情上遇到了一些麻烦。I can't clear my list view when there is an item selected.

ItemListView.Items.Clear()

For i As Integer = SExp.Length - 1 To 0 Step -1
    Dim MyItem As New ListViewItem
    MyItem.Content = SExp(i).dtDateTime.ToString
    ItemListView.Items.Add(MyItem)
Next

ItemListView.SelectedItem = 0

该代码是按钮调用中代码的一部分——它清除列表视图中的任何内容并使用结构中的日期重新填充列表视图。

It works great when nothing is selected, but I get the "Index was outside the bounds of the array" error when something is selected.

我已经尝试了很多事情,包括使用 for 循环一个接一个地删除 listivew 中的每个项目——当它命中所选项目时出现错误。我也尝试取消选择该项目然后清除,但我也无法做到这一点。

有什么想法吗?

4

3 回答 3

2

终于明白了。当我清除列表视图时,我有一个 SelectionChanged 事件正在触发,并且该事件无法处理“-1”的索引(无选择)。由于我在 SelectionChanged 事件中没有断点,因此我没有意识到错误实际上是在那里引发的。

感谢您的建议!

于 2013-04-25T14:47:26.857 回答
0
ItemListView.SelectedItem = 0

您没有“0”项,您添加了日期时间。将其更改为

ItemListView.SelectedIndex = 0
于 2013-04-24T06:10:12.970 回答
0

尝试一下。

DataSource = null;
DataBind();
于 2013-04-25T11:52:12.907 回答