Вопрос

Эй, ребята, у меня есть WPF TreeView, у которого есть три узла, я хотел бы, чтобы последний ребенок (третий узел), чтобы содержать ListView, заполненное моими связанными данными. Проблема, в которой я вступаю в то, что если я поставим список ListView в ItemTemplate моей иерархической тарелки, я получаю список для каждого ребенка, а не один список с контентом. Это ожидаемое поведение на поведение на документацию, но я ищу работу вокруг (возможно, изменить ItemContainerStyle), к сожалению, у меня практически нет опыта с шаблоном управления TreeviewItem, или для этого большой опыт работы с TreeViews в целом.

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

Кто-нибудь либо уже прошел через головную боль сэндвичинга ListView в TreeviewItem, или кто-то может предложить, как изменить управление ControlTemplate для достижения этого?

Спасибо, AJ

Это было полезно?

Решение 2

Оказывается самым простым способом справиться с ситуацией, состоит в том, чтобы заменить иерархическую передачу на втором узле с расширителем, установите элементыSource на ListView, а не в иерархическую нитатем, а Restyle кнопку на расширении выглядеть как один из дерева. ... сортирует взлом, но это работает :)

Спасибо за помощь,

Aj.

Другие советы

Узел, который имеет список ListView, должен быть другим типом данных, чем два других узла, поэтому его можно обрабатывать по-разному с помощью TreeView. Также звучит как ребенок, который содержит данные представления списка, не должны быть в HierarchicalDataTemplate но регулярно DataTemplate Один, так как у него нет других детей, распознаваемых TreeView. Вы можете смешивать и соответствовать иерархированиюDateMplate и регулярные данные DataTemplates в TreeView, поскольку вы видите FIT, регулярные таблицы данных представляют собой «лист» узлов, у них нет детей.

Образец с различными типами данных, используемые в TreeView, но все еще используя иерархические шаблоны:

<HierarchicalDataTemplate DataType="{x:Type FooNormal}" ItemsSource="{Binding TreeviewChildNodeCollection}">
   // do something else here.
</HierarchicalDataTemplate>

<HierarchicalDataTemplate DataType="{x:Type FooList}" ItemsSource="{Binding TreeviewChildNodeCollection}">
  <ListView  ItemsSource="{Binding ListviewChildNodeCollection}">
   //use listview here
  </ListView>
</HierarchicalDataTemplate>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top