Автоматически генерировать имя для пользовательского TreeViewItem - PullRequest
3 голосов
/ 25 января 2012

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

1 Ответ

1 голос
/ 05 февраля 2012

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

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

...