![](/img/trans.png)
[英]C# WPF: Removing items received in ListView.Selecteditems from list
[英]C#: Problem with selecting different items after using ListView.SelectedItems[0]
我有一个问题,我正在使用listview ListView.SelectedItems [0]中的方法将当前选择的ListViewItem返回到函数中的参数中,该函数在选中时将项目文本显示在文本框中。 此方法设置为Listview_SelectedIndexChanged事件。 问题是,当我在先前已经选择一个项目之后现在选择另一个项目时,出现错误消息,
未处理ArgumentOutOfRangeException InvalidArgument =值'0'对于'index'无效参数名:index
当我想从列表视图中返回下一个当前选定的项目时,为什么会导致该错误? 它仅在先前选择一个项目之后选择另一个项目后才会发生。
这是事件:
private void lvMyItems_SelectedIndexChanged(object sender, EventArgs e)
{
// Return currently selected item.
ShowItem(lvMyItems.SelectedItems[0]); // The error occurs here.
}
这是它正在调用的方法:
private void ShowItem(ListViewItem MyItem)
{
// This method inputs the text and subitem text of my listview item into two textboxes.
txtItemName.Text = MyItem.Text;
txtItemNickName.Text = MyItem.SubItems[1].Text;
}
“无选择”也是一种可能的状态。 在访问索引为0的项目之前,请确保SelectedItems.Count >= 1
。
当我第二次单击某个项目时,我看到会出现此问题。
第一次单击可以正常工作,但是第二次单击会导致异常。 我认为这是因为当我们单击另一个项目时,程序会清除第一个项目的“选择状态”,并将第二个项目标记为“已选择”。 在将第二个项目标记为“选中”之前,程序将处于ListView中没有选择项的条件,这(很可能是)该程序随后生成异常的原因。
因此,我们需要检查SelectedItems.Count >= 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.