是否有方法在wpf中使用InnerXml绑定来读取整个InnerXml(或OuterXml)?
示例数据提供程序
<XmlDataProvider x:Key="SampleDataProvider" IsInitialLoadEnabled="True" IsAsynchronous="False" XPath="SampleDataProvider">
<x:XData>
<SampleData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="">
<Property ID="BlinkData">
<Blink>
<Property ID="Name">Blink1</Property>
<Property ID="Speed">400</Property>
<Property ID="Value1">0</Property>
<Property ID="Value2">100</Property>
</Blink>
</Property>
</SampleData>
</x:XData>
</XmlDataProvider>示例窗口
<TextBox>
<TextBox.Text>
<Binding Source="{StaticResource ResourceKey=SampleDataProvider}" XPath="/SampleData/Property[@ID='BlinkData']" />
</TextBox.Text>
</TextBox>我希望在文本框中看到整个InnerXml。但不幸的是,我只看到节点值,比如Blink14000100。
我是不是漏掉了什么?
发布于 2013-10-01 09:48:24
好的!我想我找到了答案。wpf中的XPath最初将在内部返回一个XmlNode,这可以通过向绑定语句添加另一个属性Path__来拦截。
例如,
<TextBox Width="100" Height="100">
<TextBox.Text>
<Binding Source="{StaticResource ResourceKey=SampleDataProvider}" XPath="/SampleData/Property[@ID='BlinkData']" Path="InnerXml" />
</TextBox.Text>
</TextBox >注意绑定语句中将Path属性设置为InnerXml!此外,添加一个转换器,并做你想做的任何事情!
在这里发现了这些信息,http://msdn.microsoft.com/en-us/library/system.windows.data.binding.xpath.aspx
https://stackoverflow.com/questions/19110904
复制相似问题