Mon application dispose d'un contrôle ListView auquel des données sont ajoutées sur plusieurs colonnes et lignes. Lorsque le formulaire est fermé (appel de l'événement Form_Closing), le contenu est enregistré dans un fichier XML. Ensuite, à l'exécution suivante, le document XML est lu et son contenu est affiché dans le contrôle ListView. Pour une raison quelconque, il ne charge que la première colonne et n'enregistre pas toutes les données. Je suis nouveau à l'utilisation de XML pour enregistrer des données. Toute aide sera appréciée.C# - Enregistrer la listeVoir le contenu au format XML (avec multicolonnes) et lire sur Form_Load
C'est ce que j'ai à ce jour, je suis sûr qu'il ya beaucoup d'erreurs:
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();
}