Как включить амперсанд ( & ) в содержимое ComboBoxItem
в настоящее время у меня есть Combobox, как показано ниже:
//XAML
<ComboBox>
<ComboBoxItem> Awake & Alive</ComboBoxItem>
</ComboBox>
Это вызывает ошибку:
Ссылки на сущности или последовательности, начинающиеся с амперсанда'&', должны заканчиваться точкой с запятой';'.
Я предполагаю, что мне не хватает какой-то escape-последовательности, чтобы позволить мне использовать &. Как я могу установить содержимое этого comboboxitem, чтобы включить &?
Спасибо
3 ответов:
использовать
&для кодирования амперсанда.//XAML <ComboBox> <ComboBoxItem> Awake & Alive</ComboBoxItem> </ComboBox>
короткий ответ заключается в использовании
&до кодирование амперсанд.см. также Сущности: Обработка Специального Контента ВКЛ XML.com:
на самых низких уровнях синтаксический анализатор XML-это просто программа, которая читает через XML-документ символ за раз и анализирует его так или иначе, а затем ведет себя соответственно. Он знает, что он должен обрабатывать некоторый контент иначе, чем другой контент. Что отличает эти особые случаи является наличие таких символов как "
&" и "<". Они действуют как флаги для синтаксического анализатора; они ограничивают фактическое содержимое документа, предупреждая синтаксический анализатор о том, что он должен сделать что-то в этой точке, а не просто передать смежное содержимое в какое-то последующее приложение.... Поэтому один из способов обойти вашу непосредственную проблему-заменить амперсанд в вашем контенте соответствующей ссылкой на сущность:
<company>Harris & George</company>.
кроме того, вы можете использовать тег CDATA вокруг содержимого элемента ComboBoxItem; я думаю, что он лучше поддерживает читаемость текста.
//XAML <ComboBox> <ComboBoxItem><![CDATA[Awake & Alive]]></ComboBoxItem> </ComboBox>Для справки: http://www.w3schools.com/xmL/xml_cdata.asp
Comments