ListView внутри ребенка TreeviewItem?
-
29-09-2019 - |
Вопрос
Эй, ребята, у меня есть 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>