protected void RestoreExpandedNodes(TreeNodeAdv rootNode, ExpandedNodesDictionary expanded) { rootNode.IsExpanded = expanded.IsExpanded; foreach (TreeNodeAdv child in rootNode.Children) { LuaVariableItem item = child.Tag as LuaVariableItem; if (item != null) { ExpandedNodesDictionary childExpanded; if (expanded.TryGetValue(item.LuaKey, out childExpanded)) { RestoreExpandedNodes(child, childExpanded); } } } }