我有以下 XML 文件,当文档加载到我的程序中时,它会以编程方式填充。
我想要做的是使用 XML 文件的“系统”、“子系统”和“子子系统”元素创建一个 treeView 层次结构。
此外,在很多情况下,“系统”或“子系统”等元素在我的 XML 文件中重复出现,所以我不希望在我的树视图中重复这些元素。我需要一个包含所有系统、子系统和子系统编号但不重复的 treeView。
<DMs>
<dataModule>
<DMC>DMC-AJ-A-21-21-63-00ZZZ-254Z-B_001-00.XML</DMC>
<techName>Filter assy - blowing</techName>
<infoName>Clean mechanically</infoName>
<system>65</system>
<subsystem>32</subsystem>
<subsubsystem>12</subsubsystem>
<status>Checked In</status>
<notes>-</notes>
<currentUser>-</currentUser>
<validator>-</validator>
<dateMod>-</dateMod>
<size>-</size>
</dataModule>
<dataModule>
<DMC>DMC-xx-A-21-21-63-00ZZZ-041Z-D_001-00.XML</DMC>
<techName>Filter assy</techName>
<infoName>Description of how it is made</infoName>
<system>21</system>
<subsystem>15</subsystem>
<subsubsystem>63</subsubsystem>
<status>Checked In</status>
<notes>-</notes>
<currentUser>-</currentUser>
<validator>-</validator>
<dateMod>-</dateMod>
<size>-</size>
</dataModule>
<dataModule>
<DMC>DMC-xx-A-21-21-63-00ZZZ-042Z-D_001-00.XML</DMC>
<techName>Filter assy - blowing</techName>
<infoName>Description of function</infoName>
<system>21</system>
<subsystem>15</subsystem>
<subsubsystem>63</subsubsystem>
<status>Checked In</status>
<notes>-</notes>
<currentUser>-</currentUser>
<validator>-</validator>
<dateMod>-</dateMod>
<size>-</size>
</dataModule>
<dataModule>
<DMC>DMC-xx-A-21-21-63-00ZZZ-066Z-D_001-00.XML</DMC>
<techName>Filter assy - blowing</techName>
<infoName>Support equipment and tools data</infoName>
<system>32</system>
<subsystem>10</subsystem>
<subsubsystem>01</subsubsystem>
<status>Checked In</status>
<notes>-</notes>
<currentUser>-</currentUser>
<validator>-</validator>
<dateMod>-</dateMod>
<size>-</size>
</dataModule>
</DMs>
我有以下方法,我认为我正在朝着正确的方向前进,但是它将系统编号放入一个集合中并将它们排序以传递给我正在努力知道该怎么做的方法。
public void buildTreeView(string sys, string subsys, string subsubsys)
{
try
{
TreeNode system = treeView1.Nodes.Add("System");
system.Nodes.Add(sys);
TreeNode subsystem = system.Nodes.Add("Subsystem");
subsystem.Nodes.Add(subsys);
TreeNode subsubsystem = subsystem.Nodes.Add("Subsubsystem");
subsubsystem.Nodes.Add(subsubsys);
}
catch (Exception e)
{
MessageBox.Show("error" + e);
}
}
任何帮助表示赞赏。
我希望最终得到的是一个章节编号系统,我可以在树视图中向下钻取,即
+ System - 65
+ Subsystem - 32
Subsystem - 68
+ Subsubsystem - 01
Subsubsystem - 02
+ System - 70
+ Subsystem - 22
Subsystem - 30
+ Subsubsystem - 01