2017-03-12 40 views
0

我想添加一个项目到列表视图(赢得窗体应用程序),如果用户多次添加一个项目列表视图应该只更新项目并添加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); 
} 

任何帮助或建议将是伟大的

+1

异常发生在哪一行?我有'.SubItem [0]'没有任何元素或不能用整数作为索引访问的感觉。 –

+0

我不明白 - “不止一次列表视图应该只更新项目” - 你需要指定你正在尝试做什么。请删除多余的代码并评论你的代码,变量'BasketItems'定义在哪里? –

回答

1

listView1.SelectedItems适用于在列表视图中选择的项目。你的情况没有选择任何项目。

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

+0

谢谢。它像魅力一样工作 –