2009-10-28 55 views
5

我想綁定到我的XmlDataProvider中節點的元素名稱。我似乎無法讓我的XPath表達式中使用local-name()。 XAML是否支持local-name()?XAML支持XPath中的local-name()

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

回答

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\(\)}" /> 
+0

您從文檔中提供的引用似乎很關鍵:「XPath函數不受支持。」我想知道爲什麼像這樣的限制不是在更大的字母? – 2010-05-21 17:18:41