2015-04-04 5 views
0

Problème Contexte:Comment extraire XMLElement de selectedItem de ListBox dans WPF?

Dans mon application WPF, dans l'une des fenêtres/pages se trouvent 3 zones de liste et 1 zone de liste déroulante. Ces 3 ListBox sont liés à XML dataprovider et il n'y a pas de problèmes. Je veux dire que lorsque la sélection de la 1ère liste change automatiquement, elle met à jour listbox2. De la même manière, listbox3 se met à jour au fur et à mesure que listbox2 change. Ceux-ci sont tous élaborés dans le fichier XAML seul et il y a code-behind sauf InitializeComponent() et quelques lignes de code pour charger ce fichier XAML dynamiquement en utilisant XamlReader (ce qui est mon exigence)

face Problème Exigence:

Evénement de changement OnSelection de l'un des ListBox, doit remplir dynamiquement les données ComboBox (il lancera des services Web basés sur la sélection 3 LisBox mentionnée ci-dessus). A cet effet, dans SelectionChange Je suis en train de faire

ListBoxObj.SelectedItem - Always contains XML tree.(i.e) of type XMLElement 

J'ai essayé tous les possiblités, partout où je reçois seul arbre XML.

Quelqu'un a une idée, comment extraire le texte d'article sélectionné par ListBox de XMLElement?

Existe-t-il un moyen rapide de convertir mon arbre XmlElement en texte sélectionné, (ou) dois-je appeler un sérialiseur et le faire manuellement?

P.S: Pour moi, le fichier XAML est la seule entrée, donc je ne sais pas à quelle valeur est mappé ListBox. Je ne suis pas au courant si ListBox est mappé à l'élément/attribut. Donc d'abord j'ai besoin d'extraire les informations de mappage du fichier XAML et d'analyser manuellement l'arborescence XML.

Merci

+0

problème similaire: [lien] (http://www.programask.com/question_31363761_wpf-binding- to-xml-how-to-extrait-selected-xmlelement-and-cast-to-object /) – ShanmugaKS

+0

Problème similaire, {link} (http://stackoverflow.com/questions/13960278/wpf-binding-to-xml -how-to-extract-selected-xmlelement-and-cast-to-object? rq = 1) – ShanmugaKS

Répondre

0

Pour obtenir la partie de texte à partir d'un XmlElement, regardez dans InnerText propriété:

var selectedXml = (XmlElement)ListBoxObj.SelectedItem; 
var selectedText = selectedXml.InnerText; 
//do something useful with selectedText variable here 
+0

Désolé har07 Je viens de mettre à jour @PS jetez un coup d'oeil s'il vous plait. Comme je ne sais pas quel élément/attribut est mappé, je ne peux pas considérer cela comme une solution. – ShanmugaKS