XAML支持XPath中的local-name()

时间:2009-10-28 17:11:04

标签: xaml xpath

我想绑定到XmlDataProvider中节点的元素名称。我似乎无法让local-name()在我的XPath表达式中工作。 XAML是否支持local-name()?

<TextBlock Text="{Binding XPath=local-name()}" />

1 个答案:

答案 0 :(得分:1)

我一直在努力做同样的事情,我很确定它不会一步到位。

Binding.XPath帮助说 XmlNode::SelectNodes方法处理XPath属性中的XPath表达式。不支持XPath函数。

然而

你可以使用一些黑客来解决它 - 你需要在元素周围提供一个容器来提供一个DataContext,这是你的XPath的结果,然后你可以使用路径查询该上下文对象的LocalName属性,例如在我的工作示例中:

<StackPanel Grid.Row="20" Grid.Column="1" 
    DataContext="{Binding XPath=r:Result/r:LIC1}">
    <TextBlock Text="{Binding Path=LocalName}" />
</StackPanel>

我原本试图通过以下方式实现:

<TextBlock Grid.Row="20" Grid.Column="1" 
    Text="{Binding XPath=r:Result/r:LIC1/local-name\(\)}" />