/// <summary> /// Load nodes from XmlElement. /// </summary> /// <param name="tree">Reference to TreeGX to be populated.</param> /// <param name="parent">XmlElement that tree was serialized to.</param> public static void Load(TreeGX tree, XmlElement parent) { tree.BeginUpdate(); tree.DisplayRootNode = null; tree.Nodes.Clear(); NodeSerializationContext context = new NodeSerializationContext(); context.TreeGX = tree; context.HasDeserializeNodeHandlers = tree.HasDeserializeNodeHandlers; context.HasSerializeNodeHandlers = tree.HasSerializeNodeHandlers; try { foreach(XmlNode xmlNode in parent.ChildNodes) { if(xmlNode.Name==XmlNodeName && xmlNode is XmlElement) { Node node=new Node(); tree.Nodes.Add(node); context.RefXmlElement = xmlNode as XmlElement; LoadNode(node, context); } } } finally { tree.EndUpdate(); } }