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#在这种情况下提供的异常细节是完全错误的!