WPF, отображать значение атрибута в TreeView вместо имени узла - PullRequest
3 голосов
/ 04 августа 2010

Если у меня есть следующий шаблон данных для TreeView, что мне нужно изменить, чтобы каждый TreeViewItem отображал значение атрибута name на каждом узле XML вместо имени узла?

<HierarchicalDataTemplate x:Key="NodeTemplate">
    <TextBlock x:Name="tb"/>
    <HierarchicalDataTemplate.ItemsSource>
        <Binding XPath="child::node()" />
    </HierarchicalDataTemplate.ItemsSource>
    <HierarchicalDataTemplate.Triggers>
        <DataTrigger Binding="{Binding Path=NodeType}" Value="Text">
            <Setter TargetName="tb" Property="Text" Value="{Binding Path=Value}"/>
        </DataTrigger>
        <DataTrigger Binding="{Binding Path=NodeType}" Value="Element">
            <Setter TargetName="tb" Property="Text" Value="{Binding Path=Name}"/>
        </DataTrigger>
    </HierarchicalDataTemplate.Triggers>
</HierarchicalDataTemplate>

Ответы [ 2 ]

2 голосов
/ 04 августа 2010

Ни в коем случае, просто нужно было заменить Path=Name и Path=Value на XPath=@name в двух Setter с.

2 голосов
/ 04 августа 2010

Замените вашу привязку следующим:

<Setter TargetName="tb" Property="Text" Value="{Binding Path=Attributes[Name].Value}" />

Нашел ответ в на этот вопрос .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...