ComboBoxItemのコンテンツにアンパサンド(&)を含める方法


84

私は現在、次のようなコンボボックスを持っています:

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

これによりエラーが発生します。アンパサンド「&」で始まるエンティティ参照またはシーケンスは、セミコロン「;」で終了する必要があります。

&を使用できるようにするための何らかのエスケープシーケンスが欠落していると思います。このコンボボックスアイテムのコンテンツに&を含めるように設定するにはどうすればよいですか?

回答:


173

&amp;アンパサンドをエンコードするために使用します。

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

20

簡単な答えは、アンパサンド&amp;エンコードするために使用することです。

エンティティ: XML.comでの特別なコンテンツの処理:も参照してください。

最下位レベルでは、XMLパーサーは、XMLドキュメントを一度に1文字ずつ読み取り、何らかの方法で分析し、それに応じて動作するプログラムです。一部のコンテンツを他のコンテンツとは異なる方法で処理する必要があることを認識しています。これらの特殊なケースを区別するのは、「&」や「<」などの文字の存在です。それらはパーサーへのフラグとして機能します。それらはドキュメントの実際のコンテンツを区切り、パーサーに、隣接するコンテンツを単にダウンストリームアプリケーションに渡す以外に、この時点で何かを実行する必要があるという事実を警告します。

...したがって、当面の問題を回避する1つの方法は、コンテンツのアンパサンドを適切なエンティティ参照に置き換えることです<company>Harris &amp; George</company>


回答の用語(エンコードとエスケープ)を修正しました。私の注意を引いてくれてありがとう。
Andy West

リンクには、>、<、 "、および 'の有用な比較があります。「エンティティ参照の

それはgrtの答えです:)thnx :)
Apoorva 2012年

7

または、ComboBoxItem要素のコンテンツの周りにCDATAタグを使用することもできます。テキストの読みやすさをよりよく維持できると思います。

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

参考:http//www.w3schools.com/xmL/xml_cdata.asp

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.