public void AddSettingsPage(ISettingsPage page, SettingsPageReference parentPageReference) { TreeNode node; if (parentPageReference == null) node = treeView1.Nodes.Add(page.GetTitle()); else { TreeNode parentNode; if (!_Pages2NodeMap.TryGetValue(parentPageReference, out parentNode)) throw new ArgumentException("You have to add parent page first: " + parentPageReference.ToString()); node = parentNode.Nodes.Add(page.GetTitle()); } node.Tag = page; _Pages2NodeMap.Add(page.PageReference, node); _SettingsPages.Add(page); }