在xaml中,有两种样式:
风格1:
<ListBox Width="400" Height="300" Background="Honeydew"
**ItemsSource**="{Binding Source={StaticResource InventoryData},
XPath=*[@Stock\=\'out\'] | *[@Number>\=8 or @Number\=3]}">
风格2:
<ListBox Width="400" Height="300" Background="Honeydew">
**<ListBox.ItemsSource>**
<Binding Source="{StaticResource InventoryData}"
XPath="*[@Stock='out'] | *[@Number>=8 or @Number=3]"/>
</ListBox.ItemsSource>
您可以注意到语法存在差异。风格2有&#34;在&#39; / =
之后,在源和XPath和样式1之后需要转义&#34;有没有人帮我理解为什么样式1和样式2有不同的语法?
我希望我能很好地描述我的问题。
答案 0 :(得分:0)
这是因为在样式1中XPath
在字符串中,因此您需要\
作为特殊字符。我认为预处理器需要将XPath
与其值分开,然后解码该值。
在样式2中,只有XPath
的值为字符串,因此您可以使用更自然的语法。