Поддержка XAML для local-name () в XPath - PullRequest
5 голосов
/ 28 октября 2009

Я бы хотел привязать к имени элемента узла в моем XmlDataProvider. Я не могу заставить local-name () работать в моем выражении XPath. Поддерживает ли XAML local-name ()?

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

1 Ответ

1 голос
/ 17 мая 2010

Я пытался сделать то же самое, и почти уверен, что это не поддерживается за один шаг.

Справка Binding.XPath говорит Метод XmlNode :: SelectNodes обрабатывает выражения XPath из свойства XPath. Функции XPath не поддерживаются.

Однако

Вы можете обойти это, используя небольшой взлом - вам нужен контейнер вокруг элемента для предоставления DataContext, который является результатом вашего XPath, а затем вы можете запросить свойство LocalName этого объекта контекста, используя Path , например, в моем рабочем примере:

<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\(\)}" /> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...