Я научился добавлять TreeViewItems в зависимости от того, когда элемент выбирается после загрузки путем сканирования дерева в поисках выбранного элемента и при обнаружении добавления к этому выбранному элементу. Однако у меня возникли проблемы с добавлением детей без выбора.
Я пробовал несколько вещей, но моя последняя попытка следует следующей логике:
Настройка исходного корневого узла с помощью
Код: Выделить всё
rootNode.IsSelected = true;
Код: Выделить всё
treeview.Items.Add(rootNode)
Код: Выделить всё
var rootSelection = treeview.SelectedItem as TreeViewItem;
Код: Выделить всё
rootselection.Items.Add(newChild)
Редактировать:
Итак, ошибка, которую я сделал в своем первоначальном способе, прежде чем пришел к вышеизложенному, заключалась в том, что я пытался выполнить итерацию по ItemCollection, хотя мне следовало использовать TreeViewItem в этом экземпляре. Таким образом, итерация с помощью foreach (узел TreeViewItem в TreeView.Items) помогла.
Я рассмотрю то, что предложил Клеменс с MVVM, но это новая территория для меня. тоже, так что на более поздний срок. Однако я понимаю, что в долгосрочной перспективе foreach может оказаться немного затратным с точки зрения ресурсов, особенно в больших деревьях.
Подробнее здесь: https://stackoverflow.com/questions/790 ... ed-parents