Экспорт в XML treeview c чекбоксами (док внутри) - C#
Формулировка задачи:
Добрый день!
Есть treeView с корневыми нодами и ветками. У treeview включено свойство CheckBoxes, т.е. каждый нод является чекбоксом. Нужно экспортировать этот treeview в XML, также импортировать обратно.
Использую вот такой немецкий класс, он работает:
Проблемка в том, что нужно, чтобы и данные о чекбоксах (включен или выключен) экспортировались в XML. Подскажите, что нужно подправить в методах XmlRekursivExport и XmlRekursivImport?
p.s. в названии темы опечатка: "
public class XmlHandler
{
XmlDocument xmlDocument;
public XmlHandler()
{
}
public void TreeViewToXml(TreeView treeView, String path)
{
xmlDocument = new XmlDocument();
xmlDocument.AppendChild(xmlDocument.CreateElement("ROOT"));
XmlRekursivExport(xmlDocument.DocumentElement, treeView.Nodes);
xmlDocument.Save(path);
}
public void XmlToTreeView(String path, TreeView treeView)
{
xmlDocument = new XmlDocument();
xmlDocument.Load(path);
treeView.Nodes.Clear();
XmlRekursivImport(treeView.Nodes, xmlDocument.DocumentElement.ChildNodes);
}
private XmlNode XmlRekursivExport(XmlNode nodeElement, TreeNodeCollection treeNodeCollection)
{
XmlNode xmlNode = null;
foreach (TreeNode treeNode in treeNodeCollection)
{
xmlNode = xmlDocument.CreateElement("TreeViewNode");
xmlNode.Attributes.Append(xmlDocument.CreateAttribute("value"));
xmlNode.Attributes["value"].Value = treeNode.Text;
if (nodeElement != null)
nodeElement.AppendChild(xmlNode);
if (treeNode.Nodes.Count > 0)
{
XmlRekursivExport(xmlNode, treeNode.Nodes);
}
}
return xmlNode;
}
private void XmlRekursivImport(TreeNodeCollection elem, XmlNodeList xmlNodeList)
{
TreeNode treeNode;
foreach (XmlNode myXmlNode in xmlNodeList)
{
treeNode = new TreeNode(myXmlNode.Attributes["value"].Value);
if (myXmlNode.ChildNodes.Count > 0)
{
XmlRekursivImport(treeNode.Nodes, myXmlNode.ChildNodes);
}
elem.Add(treeNode);
}
}
}код
внутри"Решение задачи: «Экспорт в XML treeview c чекбоксами (док внутри)»
textual
Листинг программы
treeNode.Checked = Convert.ToBoolean(myXmlNode.Attributes["checked"].Value);