Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 清除ListView:索引超出了数组的界限_Wpf_Vb.net_Listview - Fatal编程技术网

Wpf 清除ListView:索引超出了数组的界限

Wpf 清除ListView:索引超出了数组的界限,wpf,vb.net,listview,Wpf,Vb.net,Listview,我在一些简单的事情上遇到了麻烦。如果选择了某个项目,则无法清除列表视图 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.

我在一些简单的事情上遇到了麻烦。如果选择了某个项目,则无法清除列表视图

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
该代码是按钮调用代码的一部分——它清除列表视图中的任何内容,并使用结构中的日期重新填充列表视图

当未选择任何内容时效果很好,但当选择某个内容时,我会出现“索引超出数组边界”错误

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
我尝试了很多方法,包括使用for循环逐个删除列表中的每个项目——当它命中所选项目时,我会出错。我还尝试取消选择该项目,然后清除,但我一直无法做到这一点

有什么想法吗

ItemListView.SelectedItem = 0
您没有“0”项,您添加了datetimes。换成

ItemListView.SelectedIndex = 0
试试看

DataSource = null;
DataBind();

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


谢谢你的建议

这是按钮单击事件中的代码段吗?请在
ItemListView.SelectedItem=0之前尝试检查边界问题与ItemListView.SelectedItem=0无关。这个错误发生在ItemListView.Items.Clear()上,你让我不用花很多时间去理解为什么C#在这种情况下提供的异常细节是完全错误的!