So fügen Sie ein kaufmännisches Und (&) in den Inhalt eines ComboBoxItem ein

84

Ich habe derzeit eine Combobox wie die folgende:

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

Dies führt zu einem Fehler: Entitätsreferenzen oder Sequenzen, die mit einem kaufmännischen Und '&' beginnen, müssen mit einem Semikolon ';' abgeschlossen werden.

Ich gehe davon aus, dass mir eine Escape-Sequenz fehlt, damit ich ein & verwenden kann. Wie kann ich den Inhalt dieses Comboboxitems so einstellen, dass er ein & enthält?

CrimsonX
quelle

Antworten:

169

Verwenden Sie &amp;diese Option, um das kaufmännische Und zu codieren.

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

Die kurze Antwort besteht darin &amp;, ein kaufmännisches Und zu codieren .

Siehe auch Entitäten: Umgang mit speziellen Inhalten auf XML.com:

Auf den untersten Ebenen ist ein XML-Parser nur ein Programm, das jeweils ein Zeichen in einem XML-Dokument liest und auf die eine oder andere Weise analysiert und sich dann entsprechend verhält. Es weiß, dass es einige Inhalte anders verarbeiten muss als andere. Was diese Sonderfälle auszeichnet, ist das Vorhandensein von Zeichen wie " &" und " <". Sie fungieren als Flaggen für den Parser. Sie begrenzen den tatsächlichen Inhalt des Dokuments und machen den Parser darauf aufmerksam, dass er an dieser Stelle etwas anderes tun muss, als nur den angrenzenden Inhalt an eine nachgeschaltete Anwendung weiterzuleiten.

... Eine Möglichkeit, Ihr unmittelbares Problem zu umgehen, besteht darin, das kaufmännische Und in Ihrem Inhalt durch die entsprechende Entitätsreferenz zu ersetzen : <company>Harris &amp; George</company>.

Sinan Ünür
quelle
Ich habe die Terminologie (Codierung vs. Escape) in meiner Antwort korrigiert. Vielen Dank, dass Sie mich darauf aufmerksam gemacht haben.
Andy West
Ihr Link enthält nützliche Vergleiche für>, <, "und '. Siehe die Tabelle beginnend mit" Entitätsreferenz steht für ... "
CrimsonX
Das ist eine gute Antwort :) Danke :)
Apoorva
7

Alternativ können Sie das CDATA-Tag um den Inhalt des ComboBoxItem-Elements verwenden. Ich denke, es behält die Lesbarkeit des Textes besser bei.

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

Als Referenz: http://www.w3schools.com/xmL/xml_cdata.asp

ChaosTechniker
quelle