2016-03-07 3 views
0

У меня возникли проблемы с пониманием того, как привязывать данные к WPF TreeView при использовании пользовательских объектов. Я исследовал и смотрел учебники, но я все еще застрял.WPF TreeView привязка данных к пользовательским объектам

ПРЕДПОСЫЛКА: рассмотрите три класса (я упростил свою проблему). Они представляют собой базу данных с таблицей, каждая таблица может иметь поля. Список таблиц.

1) TableList Класс с недвижимостью

List<Table Objects> 

2) Таблица Класс:

  • Название недвижимости
  • С Поля таблицы недвижимости

    SortedDictionary <Name, Field Object> 
    

3) Поле Класс:

  • С Название недвижимости

Пример моей нынешней попытки связать поле (низкий уровень) до Table.TableFields.Key

<DataTemplate x:Key="fieldTemplate"> 
      <TextBlock Text="{Binding Path=Table.TableFields.Key}"/> 
</DataTemplate> 

DESIRED OUTPUT - иерархическое представление списка таблиц, содержащее таблицы и их поля.

Table 1 
    Field 1 
    Field 2 
    Field 3 
Table 2 
    Field 1 
    Field 2 
    Field 3 
Table N 
    Field N 
  • Я после того, как руководство, так что я могу лучше понять, как связать эти данные, пример моего вопроса является обязательным в данные взглянуть на таблицу объектов Поля таблицы свойство, которое является SortedDictionary, в котором я хотите получить ключ, который будет именем поля.

Я смущен тем, как связывать пользовательские объекты и получать доступ к такой информации.

+0

Я не уверен, что я понять проблему, что я всегда используется при работе с дерева визуализаций создает класс Node, который является один, привязанные к дерева и является древовидным классом данных и содержит данные различных объектов, составляющих уровни дерева, созданные методом загрузки данных. –

+0

@sabrina_cs Я обновил свой вопрос –

ответ

1

Это покажет ваш TreeView

 <TreeView ItemsSource="{Binding TableList}"> 
      <TreeView.ItemTemplate> 
       <HierarchicalDataTemplate ItemsSource = "{Binding Path=TableFields}"> 
        <TextBlock Text="{Binding Path=Name}"/> 
        <HierarchicalDataTemplate.ItemTemplate> 
         <DataTemplate> 
          <TextBlock Text="{Binding Path=Key}"/> 
         </DataTemplate> 
        </HierarchicalDataTemplate.ItemTemplate> 
       </HierarchicalDataTemplate> 
      </TreeView.ItemTemplate> 
     </TreeView> 
+0

Спасибо, что ответили, однако я не уверен, что это помогает. Я больше понимаю, как правильно это делать. Я также не думаю, что HierarchialDataTemplate для TableFields будет работать? В этом случае я не имел бы ссылки на сами Таблицы. Обновлен добавлением ожидаемого результата. –

+1

Независимо от того, какую коллекцию вы задали как ItemSource treeView, будет отображаться HierarchicalDataTemple, которая аналогична DataTemplate, но дополнительно предоставляет свойство ItemsSource, которое вы можете установить для отображения подуровней. HierarchicalDataTemplate.ItemTemplate определит, как будет отображаться этот подъярус. Аналогично, используя HierarchicalDataTemplate в HierarchicalDataTemplate, вы можете отображать столько подуровней, сколько хотите. – Nitin

+0

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

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