我想在我的列表视图中编辑一个已经插入的项目。这正是我想要做的并尝试解决的问题:
if (listView1.SelectedItems.Count <= 0)
return;
foreach (ListViewItem item in listView1.SelectedItems)
{
String[] split = item.SubItems[0].ToString().Split('{');
String[] split1 = item.SubItems[1].ToString().Split('{');
String[] split2 = item.SubItems[2].ToString().Split('{');
ListViewItem tempitem = new ListViewItem(split[1].Replace("}", ""));
tempitem.SubItems.Add(split1[1].ToString().Replace("}", ""));
tempitem.SubItems.Add("0");
AutoResponce.Remove(split[1].Replace("}", "") + "|" + split1[1].ToString().Replace("}", "") + "|" + split2[1].Replace("}", ""));
AutoResponce.Add(split[1].Replace("}", "") + "|" + split1[1].ToString().Replace("}", "") + "|" + "0");
Settings settings = new Settings();
settings.SaveAuto();
listView1.Items.Remove(item);
listView1.Items.Add(tempitem);
}
因此,我创建了一个新对象,对最后一个数字输入(1 - 启用,0 - 禁用)稍作更改,然后将其重新添加,但它拖到列表视图的底部并且看起来并不好看。有没有办法可以简单地编辑输入?我通常会找到一种方法,但显然我迷路了 D:
修复(解决方案): 这看起来很愚蠢,但我找到了解决方案。不确定它是人们通常做的还是正确的方法,但这就是我所做的:
foreach (ListViewItem item in listView1.SelectedItems)
{
String[] split = item.SubItems[0].ToString().Split('{');
String[] split1 = item.SubItems[1].ToString().Split('{');
String[] split2 = item.SubItems[2].ToString().Split('{');
ListViewItem tempitem1 = new ListViewItem("1");
item.SubItems[2] = tempitem1.SubItems[0];
AutoResponce.Remove(split[1].Replace("}", "") + "|" + split1[1].ToString().Replace("}", "") + "|" + split2[1].Replace("}", ""));
AutoResponce.Add(split[1].Replace("}", "") + "|" + split1[1].ToString().Replace("}", "") + "|" + "1");
Settings settings = new Settings();
settings.SaveAuto();
}
我创建了一个“临时项目”并将第一个子项目设置为我打算作为新输入的输入,然后将所选项目设置为我刚刚创建的临时项目的第一个子项目。似乎工作得很好。