Как включить амперсанд ( & ) в содержимое ComboBoxItem



в настоящее время у меня есть Combobox, как показано ниже:



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


Это вызывает ошибку:
Ссылки на сущности или последовательности, начинающиеся с амперсанда'&', должны заканчиваться точкой с запятой';'.



Я предполагаю, что мне не хватает какой-то escape-последовательности, чтобы позволить мне использовать &. Как я могу установить содержимое этого comboboxitem, чтобы включить &?
Спасибо

584   3  

3 ответов:

использовать &amp; для кодирования амперсанда.

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

короткий ответ заключается в использовании &amp; до кодирование амперсанд.

см. также Сущности: Обработка Специального Контента ВКЛ XML.com:

на самых низких уровнях синтаксический анализатор XML-это просто программа, которая читает через XML-документ символ за раз и анализирует его так или иначе, а затем ведет себя соответственно. Он знает, что он должен обрабатывать некоторый контент иначе, чем другой контент. Что отличает эти особые случаи является наличие таких символов как "&" и "<". Они действуют как флаги для синтаксического анализатора; они ограничивают фактическое содержимое документа, предупреждая синтаксический анализатор о том, что он должен сделать что-то в этой точке, а не просто передать смежное содержимое в какое-то последующее приложение.

... Поэтому один из способов обойти вашу непосредственную проблему-заменить амперсанд в вашем контенте соответствующей ссылкой на сущность:<company>Harris &amp; George</company>.

кроме того, вы можете использовать тег CDATA вокруг содержимого элемента ComboBoxItem; я думаю, что он лучше поддерживает читаемость текста.

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

Для справки: http://www.w3schools.com/xmL/xml_cdata.asp

Comments

    Ничего не найдено.