HierarchicalDataTemplate для очень сложного макета - PullRequest
0 голосов
/ 03 октября 2011

Я создаю травяную базу данных, и у меня возникают проблемы с настройкой HierarchicalDataTemplates для моего основного класса данных.

Требуется макет дерева:

  • Глоссарий
    • Категория1
      • Letter (уменьшает общий размер списка)
        • запись
          • Note1
          • Примечание2
  • Трава

    • Ботаническое имя

      • По алфавиту
        • Letter (уменьшает общий размер списка)
          • запись
      • по семье
        • Семейный
          • запись
    • Общее имя

      • Letter (уменьшает общий размер списка)
        • запись

ПРИМЕЧАНИЕ: все записи имеют заметки ПРИМЕЧАНИЕ 2: Буква - это буква алфавита для сортировки

Ex:

  • а
    • яблоко
  • б
    • автобус

Основной класс:

Public Class MainSystem
    Public herbs As New Dictionary(Of Integer, herbEntry)
    Public glossary As New Dictionary(Of Integer, glossaryEntry)
End Class

GlossaryEntry:

Public Class glossaryEntry
    Public Property ID As Integer
    Public Property Words As List(Of String) 'Each word is in the format: Catagory/word
    Public Property Notes As SortedDictionary(Of String, String)
End Class

HerbEntry:

Public Class herbEntry
    Public ID As Integer
    Public Property commonName As List(Of String)
    Public Property botanicalName As List(Of String)
    Public Property PlantID As PlantID
End Class

РЕДАКТИРОВАТЬ: Благодаря ссылке от @AngelWPF у меня есть дерево, отображающее мой объект. Но в настоящее время дерево выглядит так:

  • Травы
    • Общее имя
      • Элемент CommonName из записи
      • Еще один элемент CommonName из записи
    • Общее имя
      • Элемент CommonName из записи
      • Еще один элемент CommonName из записи

Как я могу сделать это изменение, чтобы соответствовать моей иерархии?

XAML:

<UserControl.Resources>
        <HierarchicalDataTemplate  DataType="{x:Type my:herbEntry}">
            <TreeViewItem Header="Common Name"  ItemsSource="{Binding commonName}">

            </TreeViewItem>
        </HierarchicalDataTemplate>
    </UserControl.Resources>
    <Grid>
        <TreeView HorizontalAlignment="Stretch" Name="TreeView1" VerticalAlignment="Stretch">
            <TreeViewItem Header="Herbs" ItemsSource="{Binding herbs.Values}"/>
        </TreeView>
    </Grid>

1 Ответ

0 голосов
/ 03 октября 2011

Этот пример может помочь вам назначить разные шаблоны элементов на разных уровнях для каждого типа связанного элемента ...

Наличие шаблонов HierarchicalData в TreeView

...