- Код: Выделить всё
<?xml version="1.0" encoding="cp866"?>
<Tasks>
<Task taskname="задача 53">
<Measure mName="Основной">
<Curve cName="ГК" cDest="GKK"/>
<Curve cName="ЛМ" cDest="LMM"/>
<Curve cName="СК" cDest="VVV"/>
</Measure>
<Measure mName="Контрольный">
<Curve cName="ГК" cDest="GKK"/>
<Curve cName="ЛМ" cDest="LMM"/>
<Curve cName="СК" cDest="VVV"/>
</Measure>
</Task>
<Task taskname="задача 58">
<Measure mName="Основной">
<Curve cName="ГК" cDest="GKK"/>
<Curve cName="ЛМ" cDest="LMM"/>
<Curve cName="СК" cDest="VVV"/>
</Measure>
<Measure mName="Контрольный">
<Curve cName="ГК" cDest="GKK"/>
<Curve cName="ЛМ" cDest="LMM"/>
<Curve cName="СК" cDest="VVV"/>
</Measure>
<Measure mName="ЛПО">
<Curve cName="ЛМ" cDest="LMM"/>
<Curve cName="СК" cDest="VVV"/>
</Measure>
</Task>
</Tasks>
Из него мне нужно заполнить один комбобокс названиями задач (Задача 53 и Задача 58) и после, в зависимости от выбранного его положения заполнять второй комбо названиями замеров (Основной и Контрольный). Заполняю первый и попутно строю дерево:
- Код: Выделить всё
Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim rootNode, subNode1, subNode2, subNode3 As TreeNode
rootNode = trv.Nodes.Add("Задачи")
reader = New XmlTextReader(My.Application.Info.DirectoryPath + "\DIC\tasks.xml")
While reader.Read
If reader.NodeType = XmlNodeType.Element Then
If reader.Name = "Task" Then
subNode1 = rootNode.Nodes.Add(reader.GetAttribute("taskname"))
cmbTask.Items.Add(reader.GetAttribute("taskname"))
End If
If reader.Name = "Measure" Then
subNode2 = subNode1.Nodes.Add(reader.GetAttribute("mName"))
End If
If reader.Name = "Curve" Then
subNode3 = subNode2.Nodes.Add(reader.GetAttribute("cName") + " " + reader.GetAttribute("cDest"))
End If
End If
End While
reader.Close()
End Sub
А вот обработка переключения первого комбобокса - не работает:
- Код: Выделить всё
Private Sub cmbTask_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmbTask.SelectedValueChanged
reader = New XmlTextReader(My.Application.Info.DirectoryPath + "\DIC\tasks.xml")
While reader.Read
If reader.NodeType = XmlNodeType.Element Then
If reader.Name = "Task" And reader.GetAttribute("taskname") = cmbTask.SelectedItem.ToString Then
'как войти в раздел "Measure" ? Так - не получается.
If reader.Name = "Measure" Then
dgvColumnType.Items.Add(reader.GetAttribute("cName"))
End If
End If
End If
End While
reader.Close()
End Sub
Подскажите что нужно поправить ? Как войти в следующий по глубине подраздел ?