У меня есть список с именем, фамилией, идентификатором пользователя ... И чтобы добавить пользователя, я использую текстовые поля и кнопку добавления, и вот, где возникает проблема. StreamWriter сохраняет «текстовые поля», а не «элементы ListView», поэтому, если я оставлю текстовые поля пустыми, в моем файле останется пустая строка (.txt). Как я могу сделать так, чтобы потоковая запись сохраняла элементы ListView? Надеюсь, это имеет смысл: D
Код:
private void buttonAddNewUser_Click (object sender , EventArgs e)
{
if (string.IsNullOrEmpty (firstName) || string.IsNullOrEmpty (lastName) ||
string.IsNullOrEmpty (userID)) return;
{
ListViewItem dataItems = new ListViewItem (firstName);
dataItems.SubItems.Add (lastName);
dataItems.SubItems.Add (userID);
listView1.Items.Add (dataItems);
}
}
private void btnSaveToFile_Click (object sender , EventArgs e)
{
if (File.Exists (@"D:\PersonsSaved.txt"))
{
string fullName = firstName + "," + lastName + "," + userID;
using (var writer = new StreamWriter (@"D:\PersonsSaved.txt" , true))
{
writer.WriteLine (fullName);
MessageBox.Show ("User(s) has been saved!");
}
}
}
private void Form1_Load (object sender , EventArgs e)
{
string fileLocation = @"D:\PersonsSaved.txt";
List<string> userData = File.ReadAllLines (fileLocation).ToList ();
foreach (var item in userData)
{
string[ ] items = item.Split (new char[ ] { ',' });
listView1.Items.Add (new ListViewItem (items));
}
}
private void textBoxFirstName_TextChanged (object sender , EventArgs e)
{
firstName = textBoxFirstName.Text;
}
private void textBoxLastName_TextChanged (object sender , EventArgs e)
{
lastName = textBoxLastName.Text;
}
private void textBoxUserID_TextChanged (object sender , EventArgs e)
{
userID = textBoxUserID.Text;
}