如何遍历列表视图列
本文关键字:列表 视图 遍历 何遍历 | 更新日期: 2023-09-27 18:31:58
如何遍历列表视图列,以便我们可以检查列表视图列中的项目是否已存在,如果存在,则更改项目。
例如,我有一个列表视图(数量和项目),我想检查新添加的项目是否已存在于列表视图中,然后仅将数量更改为数量++,而不是添加新项目。
string[] saLvwItem = new string[4];
saLvwItem[0] = a.ToString();
saLvwItem[1] = r["ItemNumber"].ToString();
saLvwItem[2] = r["ItemName"].ToString();
saLvwItem[3] = r["Price"].ToString();
ListViewItem lvi = new ListViewItem(saLvwItem);
listView1.Items.Add(lvi);
所有值都来自数据库。
如果您尝试匹配 ItemName (columnIndex=2) 并增加 ItemNumber (columnIndex=1),那么这可能有效:
private void InsertOrUpdateItem(ListView listView, string[] saLvwItem)
{
if (saLvwItem == null || saLvwItem.Length < 4)
{
return;
}
bool bFound = false;
foreach (ListViewItem lvi in listView.Items)
{
if (lvi.SubItems[2].Text == saLvwItem[2])
{
// item already in list
// increase the ItemNumber
lvi.SubItems[1].Text = (Convert.ToInt32(lvi.SubItems[1].Text) + Convert.ToInt32(saLvwItem[1])).ToString();
bFound = true;
break;
}
}
if (!bFound)
{
// item not found
// create new item
ListViewItem newItem = new ListViewItem(saLvwItem);
listView.Items.Add(newItem);
}
}
使用以下代码,
if(!lvi.ContainsKey(saLvwItem[1]))
{
ListViewItem lvi = new ListViewItem(saLvwItem[2]); //Or whatever value you want to show as name
listView1.Items.Add(lvi);
}
Listview 对每个项目都有一个键值设置,因此不能设置四个属性。您的键应该是唯一的,并且您的名称应该与您想要显示的名称完全相同,您可以通过连接 2 个或更多值来命名。