WPF中XPath绑定读取InnerXml

3
有没有办法在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。

这里有什么我漏掉的吗?

1个回答

3

好的!我想我找到了答案。 在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 >

注意在Binding语句中的Path属性设置为InnerXml!此外,添加一个转换器并进行您想要的任何操作!

在这里找到了这些信息:http://msdn.microsoft.com/en-us/library/system.windows.data.binding.xpath.aspx


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接