2009-12-15 4 views
65

J'ai actuellement un Combobox comme ce qui suit:Comment inclure une esperluette (&) dans le contenu d'un ComboBoxItem

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

Cela soulève une erreur: références ou des séquences d'entité en commençant par une esperluette « & » doit être terminé avec un point-virgule ';'.

Je suppose qu'il me manque une séquence d'échappement de sorte que je puisse utiliser un &. Comment puis-je définir le contenu de cette liste déroulante pour inclure un &? Merci

Répondre

135

Utilisez &amp; pour coder l'esperluette.

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

La réponse courte est d'utiliser &amp;-encode une esperluette.

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

At the lowest levels an XML parser is just a program that reads through an XML document a character at a time and analyzes it in one way or another, then behaves accordingly. It knows that it's got to process some content differently than other content. What distinguishes these special cases is the presence of such characters as " & " and " < ". They act as flags to the parser; they delimit the document's actual content, alerting the parser to the fact that it must do something at this point other than simply pass the adjacent content to some downstream application.

... So one way to get around your immediate problem is to replace the ampersand in your content with the appropriate entity reference: <company>Harris &amp; George</company> .

+0

J'ai corrigé la terminologie (encode par rapport à échapper) dans ma réponse. Merci de l'avoir porté à mon attention. –

+0

Votre lien a des comparaisons utiles pour>, <, "et". Voir le tableau commençant par "Entité référence \t Stands pour ..." – CrimsonX

+0

Thats une grt réponse :) thnx :) – Apoorva

7

Vous pouvez également utiliser la balise CDATA autour du contenu de l'élément ComboBoxItem; Je pense qu'il vaut mieux maintenir la lisibilité du texte.

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

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