Поскольку ОП сказал, что мой комментарий был действительно тем, что он считал ответом, я подумал, что я продолжу и превращу его в ответ.
Что описывается в вопросе именно так, как вы могли бы это сделать в WPF. Например:
var item = new TreeViewItem();
myTreeView.Items.Add(item);
var subItem1 = new TreeViewItem();
var subItem2 = new TreeViewItem();
item.Items.Add(subItem1);
item.Items.Add(subItem2);
Это добавит кучу пустых предметов.
Свойство заголовка каждого TreeViewItem можно использовать для управления отображаемым изображением и использования свойства Tag для хранения данных, если вы хотите пройти этот маршрут.
Возможно, было бы предпочтительным перейти по пути привязки и использовать HierarchicalDataTemplates для управления внешним видом. Таким образом, вы не вручную создаете эти поддельные контейнеры (TreeViewItems) для своих данных.
Я бы предложил читать HierarchicalDataTemplates, так как это даст вам достойный обзор того, как процесс должен работать с привязками. Также просто прочитайте о MVVM в целом.
На самом деле это именно то, как вы это делаете в WPF, если вы не используете Binding ... – Tim
@ В этом случае вы можете добавить только один элемент, если вы попытаетесь добавить child (ren) в элемент selectedItem вернет значение null. –
Что? Вы правы, вы не можете сделать это одним звонком (на ItemCollection нет функции AddRange (...)), но вы можете просто добавить больше. 'var item = new TreeViewItem(); myTreeView.Items.Add (пункт); var subItem1 = new TreeViewItem(); var subItem2 = новый TreeViewItem(); item.Items.Add (subItem1); item.Items.Add (subItem2); 'Или сделать это как часть цикла. Я не понимаю, в чем проблема. – Tim