Автоматически генерировать имя для пользовательского TreeViewItem

У меня есть класс, производный от TreeviewItem(Custom TreeViewItem), который используется классом, производным от Treeview(пользовательский элемент управления Treeview).
Когда пользователь моего элемента управления добавляет элементы в мой пользовательский TreeView с помощью редактора коллекции времени разработки по умолчанию, я хочу, чтобы у вновь добавленных элементов было имя по умолчанию (например, MyNode1, MyNode2 и т. Д.), И я хочу, чтобы оно было записано в XAML.
Есть идеи, как это сделать?
Я заметил, что когда вы удаляете элемент управления из панели инструментов, ему присваивается имя по умолчанию. Я хотел бы повторно использовать этот существующий механизм в Visual Studio 2010, если это возможно, для моих классов узлов дерева.

1 ответ

Решение

TreeViewс и TreeViewItemОни являются элементами управления пользовательского интерфейса и не должны использоваться для хранения какой-либо информации, которую необходимо сохранить. Вместо этого вы должны создать иерархический тип данных для хранения вашей информации, привязать его к TreeView.ItemsSource собственность и обеспечить HierarchicalDataTemplate для отображения данных, как вы хотите.

Таким образом, вы можете добавлять новые элементы в TreeView просто добавляя новые объекты типа данных в связанную коллекцию в вашей модели представления или в коде позади. Вы можете присвоить объекту любые значения, которые вы хотите, прежде чем добавить их в коллекцию, и все они будут доступны из коллекции в любое время.

Другие вопросы по тегам