清除ListView:索引超出了数组的范围

时间:2013-04-23 20:36:04

标签: wpf vb.net listview clear

我遇到一些应该非常简单的问题。当选择了一个项目时,我无法清除我的列表视图。

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

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

当没有选择任何东西时它很有用,但是当选择了某些东西时,我得到“索引超出了数组的范围”错误。

我尝试了很多东西,包括使用for循环逐个删除listivew中的每个项目 - 当它击中所选项目时出现错误。我也试图取消选择该项目然后清除,但我也无法做到这一点。

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

终于明白了。当我清除listview时,我有一个SelectionChanged事件被触发,并且事件无法处理索引“-1”(没有选择)。由于我在SelectionChanged事件中没有断点,所以我没有意识到错误实际上是在那里被抛出。

感谢您的建议!

答案 1 :(得分:0)

ItemListView.SelectedItem = 0

你没有' 0,'你添加了日期时间。将其更改为

ItemListView.SelectedIndex = 0

答案 2 :(得分:0)

试一试。

DataSource = null;
DataBind();