【问题标题】:Update Duplicated Items In list View更新列表视图中的重复项
【发布时间】:2017-03-12 16:12:34
【问题描述】:

我正在尝试将项目添加到列表视图(Win 表单应用程序),如果用户多次添加项目,列表视图应该只更新项目并将数量加 1 我正在尝试更新列表视图,但出现错误

An unhandled exception of type 'System.ArgumentOutOfRangeException' occurred in System.Windows.Forms.dll

Additional information: InvalidArgument=Value of '0' is not valid for 'index'. 

首先我试图查找该项目是否存在于列表视图中 然后更新列表视图中的项目

string ScanedItem = "A"
ListViewItem ITM = listView1.FindItemWithText(ScanedItem);
if (ITM != null)
{
   int i = ITM.Index;
   listView1.SelectedItems[i].SubItems[0].Text = "2";
}
else
{
 var LastAddedItem = BasketItems.Last();
 ListViewItem lvi = new ListViewItem(LastAddedItem.Item_Name);
 lvi.SubItems.Add("£ " + LastAddedItem.Item_Price.ToString());
 lvi.SubItems.Add(LastAddedItem.Item_Quantity.ToString());
 lvi.SubItems.Add("£ " + LastAddedItem.Total_Item.ToString());
 listView1.Items.Add(lvi);
}

任何帮助或建议都会很棒

【问题讨论】:

  • 异常发生在哪一行?我感觉.SubItem[0] 没有任何元素或无法以整数作为索引访问。
  • 我不明白 - 你的意思是“不止一次列表视图应该只更新项目” - 你需要指定你想要做什么。请删除冗余代码并注释您的代码以及变量BasketItemsdefined 在哪里?

标签: c# winforms listview


【解决方案1】:

listView1.SelectedItems 用于在列表视图中选择的项目。您的案例中没有选择任何项目。

您需要改用listView1.Items。这是列表视图中所有项目的集合

【讨论】:

    猜你喜欢
    • 2016-09-28
    • 2016-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多