2009-10-28 8 views
5

Chciałbym powiązać z nazwą elementu węzła w moim XmlDataProvider. Nie mogę sprawić, że local-name() zadziała w moim wyrażeniu XPath. Czy XAML obsługuje local-name()?Obsługa XAML dla local-name() w XPath

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

Odpowiedz

1

staram się robić dokładnie to samo i jestem pewien, że nie jest obsługiwana w jednym kroku.

Pomoc podaje, że metoda obsługuje wyrażenia XPath z właściwości XPath. Funkcje XPath nie są obsługiwane.

Jednak

można obejść stosując trochę hack - trzeba pojemnik wokół elementu, aby zapewnić DataContext, który jest wynikiem twojej XPath, a następnie można wyszukać właściwość localName że przedmiot kontekst korzystania Path, takich jak w moim przykładzie pracy:

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

której ja początkowo stara się osiągnąć:

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

Cytat z dokumentacji jest kluczowy: "Funkcje XPath nie są obsługiwane." Zastanawiam się, dlaczego takie ograniczenie nie ma większych liter? –