C# WPF TreeView добавляет детей к не выбранным в данный момент родителям?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 C# WPF TreeView добавляет детей к не выбранным в данный момент родителям?

Сообщение Anonymous »

Я пытаюсь динамически создать дерево TreeView в WPF, где у «корневого» родителя будут дочерние элементы, которые также могут иметь дочерние элементы. Вся документация, с которой я сталкиваюсь, похоже, относится к WinForms, которая использует такие вещи, как TreeViewNode, которые не совпадают с TreeViewItems.
Я научился добавлять TreeViewItems в зависимости от того, когда элемент выбирается после загрузки путем сканирования дерева в поисках выбранного элемента и при обнаружении добавления к этому выбранному элементу. Однако у меня возникли проблемы с добавлением детей без выбора.
Я пробовал несколько вещей, но моя последняя попытка следует следующей логике:
Настройка исходного корневого узла с помощью

Код: Выделить всё

rootNode.IsSelected = true;
перед выполнением (чтобы установить начальный/корневой узел для построения дерева)

Код: Выделить всё

treeview.Items.Add(rootNode)
похоже, не ссылается на него, когда я пытаюсь получить к нему доступ позже, при создании нового дочернего элемента, через

Код: Выделить всё

var rootSelection = treeview.SelectedItem as TreeViewItem;
что означает, что я не могу сделать

Код: Выделить всё

rootselection.Items.Add(newChild)
Поскольку rootSelection здесь имеет значение null. Должно быть, мне что-то не хватает в документации Microsoft по TreeView и TreeViewItem.
Редактировать:
Итак, ошибка, которую я сделал в своем первоначальном способе, прежде чем пришел к вышеизложенному, заключалась в том, что я пытался выполнить итерацию по ItemCollection, хотя мне следовало использовать TreeViewItem в этом экземпляре. Таким образом, итерация с помощью foreach (узел TreeViewItem в TreeView.Items) помогла.
Я рассмотрю то, что предложил Клеменс с MVVM, но это новая территория для меня. тоже, так что на более поздний срок. Однако я понимаю, что в долгосрочной перспективе foreach может оказаться немного затратным с точки зрения ресурсов, особенно в больших деревьях.

Подробнее здесь: https://stackoverflow.com/questions/790 ... ed-parents
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • C# WPF TreeView добавляет детей к не выбранным в данный момент родителям?
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Получить всех детей, детей детей в Unity3d
    Anonymous » » в форуме C#
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous
  • Сокращать детей, чтобы соответствовать родителям
    Anonymous » » в форуме Html
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Управление вкладками WPF: как получить выбранную в данный момент вкладку?
    Anonymous » » в форуме C#
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • ВНИМАНИЕ: root: не удается найти chromedriver для установленной в данный момент версии Chrome.
    Гость » » в форуме Python
    0 Ответы
    100 Просмотры
    Последнее сообщение Гость

Вернуться в «C#»