web-dev-qa-db-fra.com

Comment inclure une esperluette (&) dans le contenu d'un ComboBoxItem

J'ai actuellement une Combobox comme celle-ci:

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

Cela soulève une erreur: les références ou séquences d'entité commençant par une esperluette '' doivent se terminer par un point-virgule ';'.

Je suppose qu'il me manque une séquence d'échappement d'une certaine sorte pour me permettre d'utiliser a. Comment puis-je définir le contenu de ce comboboxitem pour inclure un?

75
CrimsonX

Utilisation &amp; pour coder l'esperluette.

//XAML
<ComboBox>
<ComboBoxItem> Awake &amp; Alive</ComboBoxItem>
</ComboBox>
159
Andy West

La réponse courte est d'utiliser &amp; pour coder une esperluette.

Voir aussi Entities: Handling Special Content sur XML.com:

Aux niveaux les plus bas, un analyseur XML n'est qu'un programme qui lit un document XML un caractère à la fois et l'analyse d'une manière ou d'une autre, puis se comporte en conséquence. Il sait qu'il doit traiter certains contenus différemment des autres contenus. Ce qui distingue ces cas particuliers, c'est la présence de caractères tels que "&" et "< ". Ils agissent comme des indicateurs pour l'analyseur; ils délimitent le contenu réel du document, alertant l'analyseur du fait qu'il doit faire quelque chose à ce stade autre que simplement transmettre le contenu adjacent à une application en aval.

... Une façon de contourner votre problème immédiat consiste donc à remplacer l'esperluette dans votre contenu par la référence d'entité appropriée: <company>Harris &amp; George</company>.

18
Sinan Ünür

Vous pouvez également utiliser la balise CDATA autour du contenu de l'élément ComboBoxItem; Je pense que cela maintient mieux la lisibilité du texte.

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

Pour référence: http://www.w3schools.com/xmL/xml_cdata.asp

7
chaosTechnician