【问题标题】:WPF, display attribute value in TreeView instead of node nameWPF,在TreeView中显示属性值而不是节点名称
【发布时间】:2010-08-04 14:55:47
【问题描述】:

如果我有以下 TreeView 的数据模板,我需要更改什么,以便每个 TreeViewItem 显示每个 XML 节点上的 name 属性的值,而不是节点名称?

<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>

【问题讨论】:

    标签: wpf xml xaml xpath


    【解决方案1】:

    用这个替换你的绑定:

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

    this question找到答案。

    【讨论】:

      【解决方案2】:

      不用介意,只需在两个Setters 中将Path=NamePath=Value 替换为XPath=@name

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-03-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多