我有listview
项目很少。我正在使用foreach循环来检查是否匹配。我使用的代码如下所示:
foreach (ListViewItem test in listView1.Items)
{
if (test.SubItems[1].ToString() == item.SubItems[1].ToString())
{
test.Tag = item.Tag;
}
}
我要做的是,检查第二个索引,如果有匹配,请将旧项目'test'替换为新的'item'。
显然列表视图没有变化。我替换对象的方式是错误的吗?
答案 0 :(得分:1)
您可以克隆该项目并直接分配给列表视图项目。但你需要将foreach循环更改为for循环。
for (int i = 0; i < listView1.Items.Count; i++)
{
if (listView1.Items[i].SubItems[1].ToString() == item.SubItems[1].ToString())
{
listView1.Items[i] = (ListViewItem)item.Clone();
}
}
答案 1 :(得分:0)
您已更新标记。您需要更改test.SubItems [0],test.SubItems [1],...以查看更改。
或者您可以使用listView1.Items.Remove(...)
或listView1.Items.RemoveAt(...)
和listView1.Items.Insert(...)
删除旧项目并插入新项目。但如果您需要支付性能帐户,则应使用第一个算法(更改test.SubItems [i])。