如何在ComboBoxItem的内容中包含&符号(&)

时间:2009-12-15 16:46:51

标签: xaml escaping

我目前有一个类似下面的Combobox:

//XAML
<ComboBox>
<ComboBoxItem> Awake & Alive</ComboBoxItem>
</ComboBox>

这会引发错误: 以&符号'&amp;'开头的实体引用或序列必须以分号“;”结束。

我认为我错过了某种类型的转义序列,允许我使用&amp ;.如何设置此组合框的内容以包含&amp;?

3 个答案:

答案 0 :(得分:154)

使用&amp;对&符号进行编码。

//XAML
<ComboBox>
<ComboBoxItem> Awake &amp; Alive</ComboBoxItem>
</ComboBox>

答案 1 :(得分:17)

简短的回答是使用&amp; 编码&符号。

另请参阅XML.com上的Entities: Handling Special Content

  

在最低级别,XML解析器只是一个程序,它一次读取XML文档中的一个字符并以某种方式对其进行分析,然后相应地运行。它知道它必须以不同于其他内容的方式处理某些内容。这些特殊情况的区别在于存在“&”和“<”等字符。它们充当解析器的标志;它们界定了文档的实际内容,提醒解析器此时必须执行某些操作,而不是简单地将相邻内容传递给某个下游应用程序。

     

...因此,解决您眼前问题的一种方法是使用适当的实体引用替换内容中的&符:<company>Harris &amp; George</company>

答案 2 :(得分:7)

或者,您可以在ComboBoxItem元素的内容周围使用CDATA标记;我认为最好保持文本的可读性。

//XAML
<ComboBox>
<ComboBoxItem><![CDATA[Awake & Alive]]></ComboBoxItem>
</ComboBox>

供参考:http://www.w3schools.com/xmL/xml_cdata.asp