Если ваш XML-документ имеет заданную структуру, где «Отделы» всегда будут индексироваться в 1;
е:
index:[0] Scripts
index:[1] Department
index:[2] Script
index:[1] Department2
index:[2] Script
Затем вы можете инкапсулировать следующий код в метод, где 'name' является строковым параметром, а тип возвращаемого значения - логическим.
foreach (TreeNode node in uxTreeView.Nodes[0].Nodes) {
if (node.Name.ToLower() == name.ToLower()) {
return true;
}
}
return false;
Идея состоит в том, что вы вызываете эту функцию каждый раз, когда сталкиваетесь с узлом 'Department' в своем XML, перед созданием TreeNode.
Полный пример:
private bool DepartmentNodeExists(string name) {
foreach (TreeNode node in uxTreeView.Nodes[0].Nodes) {
if (node.Name.ToLower() == name.ToLower()) {
return true;
}
}
return false;
}
Наконец, легкий способ:
private bool DepartmentNodeExists(string name) {
if (uxTreeView.Nodes[0].ContainsKey(name)) {
return true;
}
else {
return false;
}
}
Все они просто реорганизованы и инкапсулированы в свои собственные именованные методы, вы, конечно, можете просто вызвать:
if (uxTreeView.Nodes[0].ContainsKey(name)) {
// do not create TreeNode
}
... во время анализа вашего XML. PS. Все эти примеры предполагают, что у вас уже есть первый корневой узел в TreeView, который добавлен в TreeView.