如何将数据保存在列表视图中?
例如,如果用户在列表视图中放入了一些东西,然后关闭了应用程序,那么所有这些信息都会丢失。有什么方法可以在他们将某些内容放入 listView 后立即保存信息?
这是我用来将信息从文本框输入到 listView1 的代码:
string[] items = { titletxt.Text, statustxt.Text };
ListViewItem lvi = new ListViewItem(items);
listView1.Items.Add(lvi);
更新(2012 年 12 月 29 日)
感谢所有的帮助!但我似乎无法让它工作。我创建了一个非常简单的表单来尝试让它工作。它有 3 个文本框(NameTxt、AgeTxt、HairColourTxt)、一个按钮和列表视图(ListOfPeople)。
这是代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace listview
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string[] items = { NameTxt.Text, AgeTxt.Text, HairColourTxt.Text };
ListViewItem lvi = new ListViewItem(items);
ListOfPeople.Items.Add(lvi);
}
}
}
我试图添加@user574632 & @Joe & @DmitryKvochkin 发布的代码,我已经更改了位,但仍然无法让它工作。我不确定我做错了什么?我试图添加这个:
private void saveListOfPeopleItems(string path, ListView lv)
{
var delimeteredListviewData = new List<string>();
foreach (ListViewItem lvi in lv.Items)
{
string delimeteredItems = string.Empty;
foreach (ListViewItem.ListViewSubItem lvsi in lvi.SubItems)
{
delimeteredItems += lvsi.Text + "#";
}
delimeteredListviewData.Add(delimeteredItems);
}
System.IO.File.WriteAllLines(path, delimeteredListviewData.ToArray());
}
private void loadListOfPeopleItems(string path, ListView lv)
{
foreach (string line in System.IO.File.ReadAllLines(path))
{
lv.Items.Add(new ListViewItem(line.Split(new char[] { '#' }, StringSplitOptions.RemoveEmptyEntries)));
}
}