有没有办法在wpf中使用xpath绑定读取整个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。
我是不是丢了什么东西?
最佳答案
好啊!我想我找到了答案。
wpf中的xpath最初会在内部返回一个xmlnode,这可以通过向binding语句添加另一个属性path来拦截。
例如,
<TextBox Width="100" Height="100">
<TextBox.Text>
<Binding Source="{StaticResource ResourceKey=SampleDataProvider}" XPath="/SampleData/Property[@ID='BlinkData']" Path="InnerXml" />
</TextBox.Text>
</TextBox >
注意binding语句中设置为innerXML的path属性!另外添加一个转换器到这个和做任何你想要的!
在这里找到这个信息,http://msdn.microsoft.com/en-us/library/system.windows.data.binding.xpath.aspx
关于c# - XPath绑定(bind)以读取WPF中的InnerXml,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19110904/