2009-10-28 11 views
5

Me gustaría enlazar al nombre del elemento de un nodo en mi XmlDataProvider. Parece que no puedo hacer que local-name() funcione en mi expresión XPath. ¿XAML es compatible con nombre-local()?Soporte XAML para nombre-local() en XPath

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

Respuesta

1

que han estado tratando de hacer exactamente lo mismo y estoy bastante seguro de que no se admite en un solo paso.

La ayuda Binding.XPath dice El método XmlNode::SelectNodes maneja las expresiones XPath de la propiedad XPath. Las funciones de XPath no son compatibles.

Sin embargo

Puede trabajar alrededor de ella con un poco de un truco - que necesita un contenedor alrededor del elemento para proporcionar un DataContext que es el resultado de su XPath y entonces usted puede consultar la propiedad LocalName de que el objeto de contexto usando Ruta, como en mi ejemplo de trabajo:

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

la que originalmente había estado tratando de lograr con:

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

La cita que proporcionó de la documentación parece ser clave: "Las funciones de XPath no son compatibles". Me pregunto por qué una limitación como esa no está en letras más grandes. –