0
我需要申请XPath Binding
ItemsSource
的HierarchicalDataTemplate
。使用属性属性语法应用XPath绑定时工作正确,但在一种情况下,我有很长的XPath表达式来使用,所以我想使用属性元素语法来应用它。如何使用属性元素语法指定绑定XPath?
这就是使用属性属性语法工作:
<HierarchicalDataTemplate
x:Key="rootTemplate"
ItemsSource="{Binding XPath=./*}">
<StackPanel
Orientation="Horizontal"
VerticalAlignment="Center">
<TextBlock
Margin="5,0,0,0"
Text="{Binding Name}" />
<Image
Source="repeat.ico"
Margin="5 0 0 0"
Width="20"
Height="20"
Visibility="{Binding Converter={StaticResource RepeatToVisiblityConverter}}"></Image>
</StackPanel>
</HierarchicalDataTemplate>
而这正是我想达到相同的模板上面,使用长的XPath时,使用属性元素语法:虽然我在这里使用了相同的XPath中的问题,但在实际它是长]
<HierarchicalDataTemplate
x:Key="rootTemplate">
<HierarchicalDataTemplate.ItemsSource>
<Binding>
<Binding.XPath>
<![CDATA[./*]]>
</Binding.XPath>
</Binding>
</HierarchicalDataTemplate.ItemsSource>
<HierarchicalDataTemplate.ItemTemplate>
<DataTemplate>
<StackPanel
Orientation="Horizontal"
VerticalAlignment="Center">
<CheckBox
Margin="5,0,0,0" />
<TextBlock
Margin="5,0,0,0"
Text="{Binding Name}" />
</StackPanel>
</DataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
的的ItemsSource变空,并使用此语法用于指定绑定时上什么都没有。
有谁知道,如何解决这个问题?
' ./* Binding.XPath>'? –
Clemens
或''? –
Clemens
这也是行不通的。即使这样做,我也有一个非常大的XPath表达式,如果用双引号引起来,将需要许多转义序列。 – teenup