W moim programie C# WinForms mam widok drzewa, który zawiera tylko węzły nadrzędne (więc nie ma potomków) jest jak listbox, ale potrzebowałem go z powodu posiadania różnych właściwości węzły takie jak Name, Tag i Text.Zapisywanie zawartości widoku drzewa do pliku i ładowanie go później
Nie Chcę, aby móc zapisać zawartość tego widoku drzewa do pliku (zasadniczo jest to plik tekstowy, który nazywam * .MVIA). Pytanie brzmi, jaki jest najlepszy sposób na zapisanie wszystkich trzech właściwości węzłów w pliku, aby mógł zostać ponownie załadowany później poprawnie?
W tej chwili przyszedł z tym pomysłem:
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());
}
}
Jak widać, każda nieruchomość Nazwa każdego węzła zostanie zapisany w jednej linii. Teraz muszę dodać również jego właściwość Tekst i znacznik, ale później mam problem z odczytaniem go (Naprawdę nie wiem jak to zrobić).
Czy mógłby mi pan podać kilka pomysłów, jaki jest najlepszy sposób na zapisanie wszystkich trzech właściwości każdego węzła i możliwość łatwego załadowania go później?
Dzięki.
Zapis informacji na coś klasy Drzewa {list _ węzły; Węzeł klasy {Nazwa ciągu; Tekst ciąg; Tag ciągu;}}. Następnie możesz skorzystać z serializacji XML. Jest to najbardziej uniwersalny sposób, jaki znam. –
alehro
@alhero Dzięki, ale jest to dla mnie nieco skomplikowane, czy możesz podać przykłady kodu? –
alehro odnosi się do ['XmlSerializer'] (http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.aspx). Na tej stronie jest całkiem sporo przykładowego kodu. – Timwi