我正在尝试将CData元素绑定到代码中的文本框。 xml结构是这样的:
<Music>
<Category>
<Albums>
<![CDATA[
<AlbumData>
<Album>
<id>A1</id>
<Artist>artist 1</Artist>
</Album>
<Album>
<id>A2</id>
<Artist>artist 2</Artist>
</Album>
</AlbumData>
]]>
</Albums>
</Category>
</Music>
如何将艺术家绑定到文本框?我想让它成为一种双向约束。
答案 0 :(得分:1)
要获得客户已将某些疯狂原因嵌入CDATA部分的XML,您可以执行以下操作:
XDocument xd = XDocument.Load("music.xml")
XElement albumData = XElement.Parse(xd.Root.Element("Category").Element("Albums").Value);
从那里你可以在XmlDataProvider
中使用xml并使用XPath来获取艺术家的名字并将其显示在TextBox
中。
我认为在您的情况下(希望有双向访问)从长远来看,创建支持类(模型和视图模型)然后从提取的XML创建它们将更容易。从那些,而不是XmlDataProvider
,您将窗口的DataContext设置为viewmodel。