Экспорт в XML treeview c чекбоксами (док внутри) - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день! Есть treeView с корневыми нодами и ветками. У treeview включено свойство CheckBoxes, т.е. каждый нод является чекбоксом. Нужно экспортировать этот treeview в XML, также импортировать обратно. Использую вот такой немецкий класс, он работает:
  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. Подскажите, что нужно подправить в методах XmlRekursivExport и XmlRekursivImport? p.s. в названии темы опечатка: "

код

внутри"

Решение задачи: «Экспорт в XML treeview c чекбоксами (док внутри)»

textual
Листинг программы
treeNode.Checked = Convert.ToBoolean(myXmlNode.Attributes["checked"].Value);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5