XAML支持XPath中的local-name()

M. *_*ley 5 xaml xpath

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

<TextBlock Text="{Binding XPath=local-name()}" />
Run Code Online (Sandbox Code Playgroud)

And*_*ent 1

我一直在尝试做完全相同的事情,并且非常确定它在一步中不受支持。

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

然而

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

<StackPanel Grid.Row="20" Grid.Column="1" 
    DataContext="{Binding XPath=r:Result/r:LIC1}">
    <TextBlock Text="{Binding Path=LocalName}" />
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

我最初一直试图通过以下方式实现:

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