【问题标题】:WPF Datagrid binding to xmlWPF Datagrid 绑定到 xml
【发布时间】:2011-05-14 08:41:00
【问题描述】:

我想以编程方式将包含从数据库中提取的一些结果的 XML 文件绑定到我的 Datagrid。我的 XML 看起来像:

<root>
    <resultset>
        <header>
            <column> Col 1 </column>
            <column> Col 2 </column>
        </header>

        <data>
            <row>
               <field>Value field 1</field>
               <field>Value field 2</field>
            </row>
            <row>
               <field>Value field 1</field>
               <field>Value field 2</field>
            </row>
        </data>
    </resultset>
</root>

我正在尝试将标题映射到数据网格标题,并将行映射到行...唯一的问题是我有点卡住了,我迷失在程序属性中,有人可以给我吗提示要照顾什么?

我已经尝试过:

myDataGrid.ItemsSource = myXmlDoc

但它并没有真正帮助什么都没有显示,呵呵,我已经阅读了一些“路径”绑定属性,但我找不到它。

【问题讨论】:

    标签: c# wpf xml data-binding datagrid


    【解决方案1】:

    我想您已经有了 xmldataprovider 和名为 myXMLDoc 的 Xml 源。 然后您可以将 xml 数据绑定到您的 WPF 控件。

    ItemsSource="{Binding Source={StaticResource myXMLDoc}, XPath=row}}" //bind "row" elements to your control
    

    【讨论】:

    • 哇,我不知道我可以以编程方式放置表达式...伙计,太棒了!非常感谢您。它给了我行(但还空着),但它比我要挖掘找出问题所在之前的行要好。再次感谢您
    • 只有一个问题,如何将 标签绑定到数据网格标题列?我尝试查看 mydatagrid.columns 但它是一个集合,它实际上并没有 ItemsSource 或其他东西。谢谢你:)
    • 确实,我找到了一个并且它有效 :D 谢谢人 :)。只有一件事,我的列设置正确,但我的行是空的。如何将 中的每个 映射到每一列?
    【解决方案2】:

    这就是你要找的吗?

    http://joshsmithonwpf.wordpress.com/2007/06/04/binding-to-xml/

    我认为您想要做的是将 ItemsSource 连接到 XmlDataProvider(您也可以在代码中创建),并将其 XPath 设置为 /root/resultset/data/row。然后对于您可以使用的每个元素,例如Text = {Binding XPath=./field}

    由于我有一段时间没有这样做了,所以我对细节有点不确定,但希望这会让你朝着正确的方向前进。

    【讨论】:

    • 谢谢你的回答丽。问题是我想以编程方式 实现这一点(由于应用目的/架构,无法在 XAML 中实现。)。问题是,以编程方式我不能再使用绑定表达式,这就是为什么我在所有这些属性中有点迷失,我正在阅读一篇关于数据绑定的 MSN 文章,但它仍然令人困惑。 (顺便说一下, wpf :p)
    猜你喜欢
    • 1970-01-01
    • 2013-06-01
    • 2014-10-23
    • 2013-10-31
    • 2011-01-13
    • 2013-10-14
    • 2015-07-02
    • 2013-07-28
    • 1970-01-01
    相关资源
    最近更新 更多