这是我添加到我的列表的代码:
List<string> myList = new List<string>();
private void button1_Click(object sender, EventArgs e)
{
ListViewItem myList = new ListViewItem(txtBox1.Text);
myList.SubItems.Add(txtBox2.Text);
myList.SubItems.Add(txtBox3.Text);
myList.SubItems.Add(txtBox4.Text);
listView1.Items.Add(myList);
txtBox1.Text = "";
txtBox2.Text = "";
txtBox3.Text = "";
txtBox4.Text = "";
}
这会添加到我的列表中并清除,并允许我在列表中添加其他帖子。问题是我希望能够重新填充文本框以允许我更新列表中的帖子。
为了使我的观点更清楚,我的列表如下所示:
Code | Name | Price | In stock
------------------------------
123 aa 122 2
124 bb 111 5
说我想要第一篇文章,我可以通过该标识符以某种方式将所有数据设置回文本框中,还是按索引搜索?我希望能够将代码放在第一个文本框中,然后点击一个名为retrieve的按钮,填充另一个文本字段,就像通过sql表中的唯一键一样,但我无法找到任何有关它的信息。< / p>
答案 0 :(得分:2)
为什么不创建一个具有代码,名称,价格,库存和使用列表
的类Public MyItem
{
public string Code;
public string Name,
public float Price;
public bool inStock;
}
List<MyItem> myList = new List<MyItem>();
private void button1_Click(object sender, EventArgs e)
{
MyItem temp = new MyItem()
temp.Code=txtBox1.Text;
temp.Name=(txtBox2.Text);
temp.Price=(txtBox3.Text);
temp.inStock=(txtBox4.Text);
mylist.add(temp);
txtBox1.Text = "";
txtBox2.Text = "";
txtBox3.Text = "";
txtBox4.Text = "";
}
如果以这种方式实现它,那么您只需使用索引来遍历列表中的所有项目。使用上面的示例,您可能需要先转换文本框中的一些值才能使用它们(价格加倍)
此外,如果您要将项目添加到Listview并以特定方式显示它们,则覆盖MyItem类中的toString属性,您可以显示所需的任何文本。希望这会有所帮助。
答案 1 :(得分:0)
您不应仅将数据存储在控件中。我会创建一个类来保存有关特定项目的所有信息,并使用文本框的内容填充THAT,并将其存储在某个集合中(如果您想通过代码查找,可能是字典)
然后,您可以在ListViewItem的“Tag”属性中添加对此对象的引用,以便您可以立即从任何选定的ListViewItem中获取它。
答案 2 :(得分:0)
我不明白你的意思是说“我可以通过(那个标识符)以某种方式将所有数据设置回文本框中”哪个标识符?!
但我会得到这样的数据:
var item = listview1.items.where(x=>x.SubItems[0].value == mycodeId).firstordefault();
现在我有了可以从中检索数据的项目:
textbox1.Text = item[1].value;