2010-11-08 4 views
1

У меня есть TreeView WPF с HierarchicalDataTemplate. Когда я спускаюсь по иерархии, расширяя узлы, я, в конце концов, доберусь до низа и данные, отображаемые через обычный DataTemplate. Я бы хотел не показывать эти узлы - если я установил DataTemplate с TextBlock в Visible Hidden (или аналогичный), я просто выделил выделенное пространство в treeview. Я бы не хотел отображать эти элементы, поэтому предположим, что мне нужно как-то их удалить. Я не могу использовать фильтр в CollectionView, так как на этом уровне могут быть другие узлы с дочерними элементами. Поэтому в принципе, на любом уровне я хочу удалить те узлы, у которых нет детей. Фактические данные загружаются из файла Xml через XmlDataProvider, поэтому нет объектов класса. Может кто-нибудь подскажет, какWPF Treeview с HierarchicaldataTemplate - не показывать самый низкий элемент

благодаря Джон

ответ

0

Предположительно вы задаете вопрос, потому что последние узлы в дереве одного и того же типа, так что вы используете только один HierarchicalDataTemplate:

<HierarchicalDataTemplate DataType="{x:Type src:MyNodeClass}" ItemsSource = "{Binding Path=Items}"> 
    <TextBlock Text="{Binding Path=PropertyToDisplay}"/> 
</HierarchicalDataTemplate> 

Если вы может изменить тип ваших последних узлов, они не будут автоматически использовать шаблон (вы также можете наследовать от обычного типа, чтобы коллекция позволяла им, даже если новый класс фактически пуст).

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