2014-06-09 3 views
1

У меня есть объект класса определен нижеBind пользовательский объект TreeView в WPF

class XYZ 
{ 
    List<XYZ> child; 
    String header; 
} 

Я хочу, чтобы связать этот объект в дереве. Первоначально корень XYZ будет самым верхним TreeViewItem. root будет иметь дочерний элемент List как sub TreeViewItems. Это будет продолжаться рекурсивно, пока список каждого объекта XYZ не будет пустым. Каждый TreeViewItem является либо узлом, либо листом (если дочерний элемент List пуст).

Я могу сделать это программно, добавив TreeViewItem в качестве дочернего элемента в родительский TreeViewItem.

Количество уровней неизвестно.

Я отослал этот ответ Bind Object to WPF TreeView, но здесь указано для трехуровневой иерархии.

ответ

3

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

Убедитесь, что коллекция вы используете орудия INotificationPropertyChanged

DataTemplate будет в линиях

<TreeView ItemsSource={Binding child}> 
<TreeView.Resources> 
<HierarchicalDataTemplate ItemsSource="{Binding child}" DataType="{x:Type vm:XYZ}"> 
<Grid> 
<TextBlock Text="{Binding header}"/> 
</Grid> 
</HierarchicalDataTemplate> 
</TreeView.Resources> 
</TreeView> 
+0

Почему downvote ??? ОП задал вопрос о том, как создать динамическое древовидное представление, и для этого я предоставил Datatemplate. Конечно, он не предоставил никакого кода, который я должен был догадаться о его реализации, и дать руководство по крайней мере для решения! – Krishna

+0

Извините за отсутствие кода, но ваше решение сработало! –

Смежные вопросы