Тема: Зв*язка елементів в xmlDocument з елементами TreeView
Привіт, як видно з заголовка потрібно зв*язати ноди(елементи) для екземпляра документа xml типу XmlDocument і TreeView відповідно.
Відображення і частково звя*зок елементів робив по статті - https://codeby.net/c-rabota-s-elementom … a-treeview
Но через проблеми з відображенням коду на сторінці статті, такий самий робочий код тут на MSDN https://support.microsoft.com/ru-ru/hel … -2005-or-i
Все що стосується відображення працює, елементи відображаються. Цікавить мене наступна робота с ними(елементами), тобто потрібно якось зв*язати, щоб б вибраний елемент в TreeView(TW) відповідав тому ж в XmlDocument.
Автор статті (перша ссилка вище)привів приклад як можна зв*язати:
[code=C#]private void treeView1_NodeMouseClick(object sender,
TreeNodeMouseClickEventArgs e)
{
//находим узел по имени
XmlNodeList nodes = xmlDoc.GetElementsByTagName(e.Node.Text);
txtboxAtrName.Text = "";
txtboxAtrValue.Text = "";
if (nodes.Count > 0)
{
XmlAttributeCollection atrCol;
atrCol = nodes[e.Node.Index].Attributes;
if (atrCol.Count > 0)
{
//получаем все атрибуты
foreach (XmlAttribute atr in atrCol)
{
txtboxAtrName.Text = atr.Name;
txtboxAtrValue.Text = atr.Value;
}
}
}
}[/code]
При клікові на елемент TW йде обробка вище приведеної події де ми получаємо екземпляр клікнутого нами елемента (e.Node) далі ми получаємо по імені полученого нами елемента список всіх елементів з таким вже іменем із xmlDocument
[code=C#]XmlNodeList nodes = xmlDoc.GetElementsByTagName(e.Node.Text);[/code]
Потім звертаємось до получених елементів по індексу данному в TW
[code]atrCol = nodes[e.Node.Index].Attributes;[/code]
но індекси(nodes[], e.Node.Index), а значить і елементи можуть не співпадати
Наприклад вибравши елемент car:
[code=XML]<?xml version="1.0" encoding="utf-8" ?>
<cars>
<models id = "rusAuto">
<car id="1"> VAZ </car>
<car id="2"> UAZ </car>
<car id="3"> neUAZ </car>
</models>
</cars>[/code]
Тут все працює так як індекси співпадають.
А тут ні :
[code=XML]<?xml version="1.0" encoding="utf-8" ?>
<cars>
<models id = "rusAuto">
<test id="0">test</test>
<car id="1"> VAZ </car>
<car id="2"> UAZ </car>
</models>
</cars>[/code]
Так як через елемент "test" індекси вибраного елемента car не будуть співпадати він зміститься на 1.
Є ідеї як можна це все зв*язати щоб надалі мати можливість добавляти/видаляти елменти і не тільки?
Якщо потрібно більше інформації пишіть!