Nel mio programma C# WinForms ho una treeview che contiene solo nodi padre (quindi, nessun child) è come una listbox ma io ne avevo bisogno a causa di avere proprietà differenti di nodi come Nome, Tag e Testo.Salvare il contenuto di una treeview in un file e caricarlo in seguito
No Desidero poter salvare il contenuto di questa struttura ad albero in un file (in pratica un file di testo che io chiamo * .MVIA). La domanda è qual è il modo migliore per salvare tutte e tre le proprietà dei nodi in un file in modo che possa essere caricato nuovamente in un secondo momento?
Al momento mi è venuto con questa idea:
private void menuFileSave_Click(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
foreach(TreeNode node in treeViewFiles.Nodes)
{
sb.AppendLine(node.Name);
}
SaveFileDialog saveList = new SaveFileDialog();
saveList.DefaultExt = "*.mvia";
saveList.Filter = "MVIA Files|*.mvia";
if (saveList.ShowDialog() == DialogResult.OK)
{
File.WriteAllText(saveList.FileName, sb.ToString());
}
}
Come si può vedere, ogni proprietà Nome di ogni nodo verrà salvato in una linea. Ora ho bisogno di aggiungere anche la proprietà Text e Tag, ma in seguito ho difficoltà a leggerlo (Onestamente non so come farlo).
Vuoi darmi qualche idea su quale sia il modo migliore per salvare tutte e tre le proprietà di ogni nodo e riuscire a caricarlo facilmente in seguito?
Grazie.
Write informazioni a qualcosa di simile classe Tree {List _ nodi; class Node {String Name; String Text; Tag stringa;}}. Di quanto tu possa usare la serializzazione XML. È il modo più universale che conosco. –
alehro
@alhero Grazie, ma è un po 'complicato per me, puoi dare qualche esempio di codice? –
alehro fa riferimento a ['XmlSerializer'] (http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.aspx). C'è un bel po 'di codice di esempio su quella pagina. – Timwi