<listbox.itemssource>与XAML中的ItemsSource之间的差异语法</listbox.itemssource>

时间:2015-03-04 07:56:26

标签: c# wpf xaml xpath

在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有不同的语法?

我希望我能很好地描述我的问题。

1 个答案:

答案 0 :(得分:0)

这是因为在样式1中XPath在字符串中,因此您需要\作为特殊字符。我认为预处理器需要将XPath与其值分开,然后解码该值。

在样式2中,只有XPath的值为字符串,因此您可以使用更自然的语法。