I am new to C# and VS and am trying to convert XmlNode to TreeViewItem and reflect the changes into TreeView in a recursive manner but TreeView is not updated/ not showing the nodes. Below is my TreeView.xaml code:
<TreeView x:Name="DAPITreeView" Margin="5,5,5,-596" Grid.RowSpan="11" Height="829" SelectedItemChanged="DAPITreeView_SelectedItemChanged" > <TreeView.ItemContainerStyle> <Style TargetType="{x:Type TreeViewItem}"> <Setter Property="IsExpanded" Value="True"/> </Style> </TreeView.ItemContainerStyle> </TreeView>
private void LoadTreeView(string filename) { XmlDocument doc = new XmlDocument(); try { doc.Load(filename + ".xml"); } catch (Exception Err) { System.Windows.Forms.MessageBox.Show(Err.Message); return; } ConvertXmlNodeToTreeNode(doc, DAPITreeView.Items); //Tree View Expand All to be Done } private void ConvertXmlNodeToTreeNode(XmlNode xmlNode, ItemCollection itemCollection) { TreeViewItem newTreeViewItem = null; switch (xmlNode.NodeType) { case XmlNodeType.ProcessingInstruction: case XmlNodeType.XmlDeclaration: break; case XmlNodeType.Element: { newTreeViewItem = new TreeViewItem(); newTreeViewItem.Items.Add(xmlNode.Name); itemCollection.Add(newTreeViewItem); //TreeView not updated here } break; case XmlNodeType.Comment: { newTreeViewItem = new TreeViewItem(); newTreeViewItem.Items.Add(xmlNode.Name); newTreeViewItem = new TreeViewItem(); newTreeViewItem.Items.Add("<!--" + xmlNode.Value + "-->"); } break; } if (xmlNode.Name == "message") { if (xmlNode.ChildNodes.Count > 0) { newTreeViewItem = new TreeViewItem(); newTreeViewItem.Items.Add("dummy"); } return ; } foreach (XmlNode childNode in xmlNode.ChildNodes) { if (newTreeViewItem == null) { newTreeViewItem = new TreeViewItem(); itemCollection.Add(xmlNode.Name); //Only item added to TreeView as #document. newTreeViewItem.Items.Add(xmlNode.Name); } ConvertXmlNodeToTreeNode(childNode, newTreeViewItem.Items); } }
Can anyone suggest me what is missing or needs correction?
Found the correction. Thanks for the comments.
newTreeViewItem.Header = ("dummy"); //newTreeViewItem.Items.Add("dummy");
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)