Мое приложение имеет элемент управления ListView, к которому добавлены данные в несколько столбцов и строк. Когда форма закрывается (вызывая событие Form_Closing), содержимое сохраняется в файл XML. Затем при следующем запуске XML-документ считывается, а его содержимое отображается в элементе управления ListView. По какой-то причине он загружает только первый столбец и не сохраняет все данные. Я новичок в использовании XML для сохранения данных. Любая помощь будет оценена.
Это то, что я имею до сих пор, я уверен, что есть много ошибок:
private void Form1_Load(object sender, EventArgs e)
{
System.Xml.XmlDocument loadDoc = new System.Xml.XmlDocument();
loadDoc.Load(Application.StartupPath + "\\Accounts.xml");
foreach (System.Xml.XmlNode emailNode in loadDoc.SelectNodes("/Accounts/Item"))
{
AccountList.Items.Add(emailNode.Attributes["email"].InnerText);;
}
foreach (System.Xml.XmlNode passwordNode in loadDoc.SelectNodes("/Accounts/Item"))
{
AccountList.Items.Add(passwordNode.Attributes["password"].InnerText); ;
}
foreach (System.Xml.XmlNode statusNode in loadDoc.SelectNodes("/Accounts/Item"))
{
AccountList.Items.Add(statusNode.Attributes["status"].InnerText); ;
}
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
System.Xml.XmlTextWriter writer = new System.Xml.XmlTextWriter(Application.StartupPath + "\\Accounts.xml", null);
writer.WriteStartElement("Accounts");
for (int i =0; i < AccountList.Items.Count; i++)
{
writer.WriteStartElement("Item");
writer.WriteAttributeString("email", AccountList.Items[i].Text);
writer.WriteAttributeString("password", AccountList.Items[i].Text);
writer.WriteAttributeString("status", AccountList.Items[i].Text);
writer.WriteEndElement();
}
writer.WriteEndElement();
writer.Close();
}