[xaml] ComboBoxItem의 내용에 앰퍼샌드 (&)를 포함하는 방법

현재 다음과 같은 Combobox가 있습니다.

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

이로 인해 오류가 발생합니다. 앰퍼샌드 ‘&’로 시작하는 엔티티 참조 또는 시퀀스는 세미콜론 ‘;’으로 종료되어야합니다.

&를 사용할 수 있도록 일종의 이스케이프 시퀀스가 ​​누락되었다고 가정합니다. &를 포함하도록이 comboboxitem의 내용을 어떻게 설정할 수 있습니까?



답변

&amp;앰퍼샌드를 인코딩하는 데 사용 합니다.

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


답변

짧은 대답은 앰퍼샌드 &amp;인코딩 하는 데 사용 하는 것입니다.

엔티티 : XML.com에서 특수 콘텐츠 처리를 참조하십시오 .

가장 낮은 수준에서 XML 파서는 XML 문서를 통해 한 번에 한 문자를 읽고 한 가지 또는 다른 방식으로 분석 한 다음 그에 따라 동작하는 프로그램 일뿐입니다. 일부 콘텐츠를 다른 콘텐츠와 다르게 처리해야한다는 것을 알고 있습니다. 이러한 특수한 경우를 구별하는 것은 ” &“및 ” <” 와 같은 문자가 있다는 것입니다 . 파서에 대한 플래그 역할을합니다. 그들은 문서의 실제 내용을 구분하여, 단순히 인접한 내용을 일부 다운 스트림 응용 프로그램에 전달하는 것 외에이 시점에서 무언가를해야한다는 사실을 파서에게 경고합니다.

… 따라서 당면한 문제를 해결하는 한 가지 방법은 콘텐츠의 앰퍼샌드를 적절한 엔티티 참조로 바꾸는 것 <company>Harris &amp; George</company>입니다..


답변

또는 ComboBoxItem 요소의 내용 주위에 CDATA 태그를 사용할 수 있습니다. 나는 그것이 텍스트의 가독성을 더 잘 유지한다고 생각합니다.

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

참고 : http://www.w3schools.com/xmL/xml_cdata.asp


답변