2010-11-23 180 views
0

我想以编程方式将包含从数据库中抽出的一些结果的XML文件绑定到我的Datagrid。我的XML看起来像:WPF 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> 

我试图映射头DataGrid标题,行至行......唯一的事情是,我有点卡住了,我失去了中程序化的属性,有人可以给我一个暗示什么要照顾?

我试着这样做:

myDataGrid.ItemsSource = myXmlDoc 

但它并不能真正帮助什么也不显示嘿嘿,我读过的一些“路径”绑定属性,但我不能找到它。

回答

1

我想你已经有xmldataprovider与XML源命名myXMLDoc。 然后你可以将XML数据绑定到你的WPF控件。

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

WOW我不知道我可以把程序化表达式......哥们,真棒!非常感谢你。它给了我行(但是空的),但它比我在挖掘找出错误之前所做的更好。再次,谢谢 – CoolStraw 2010-11-23 09:53:36

1

这是你在找什么?

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

我想你想要做的是挂钩的ItemsSource到XmlDataProvider(你也可以在代码中创建),其XPath设置为/root/resultset/data/row。然后对于可以使用的每个元素,请说Text = {Binding XPath=./field}

我在细节上有点玄乎,因为我已经有一段时间没有这样做,而是希望这会为您在正确的方向。

+0

谢谢您的回答丽。事情是,我想要以编程方式实现**(由于应用程序目的/拱,无法在XAML中完成)。事情是,以编程的方式,我不能再使用绑定表达式,这就是为什么我会在所有这些属性中迷失方向,我正在阅读关于数据绑定的MSN文章,但它仍然令人困惑。 (**新** WPF的方式:P) – CoolStraw 2010-11-23 09:49:26