代码之家  ›  专栏  ›  技术社区  ›  Alexan Amani Kanu

数据报绑定XAML

  •  1
  • Alexan Amani Kanu  · 技术社区  · 14 年前

    我正在尝试将DataGrid绑定到XML:

    <StackPanel.DataContext>
    <XmlDataProvider Source="bill.xml" XPath="/Foods/Food"/>
    </StackPanel.DataContext>
    
    <DataGrid Width="190" Height="200" HorizontalAlignment="Center" VerticalAlignment="Top" Foreground="Black" ItemsSource="{Binding}">
    
    <DataGrid.Columns>
    <DataGridTextColumn Header="Quantity" FontSize="12" Binding="{Binding XPath=/Foods/Food/Quantity}" />
    <DataGridTextColumn Header="Item" FontSize="12" Binding="{Binding XPath=/Foods/Food/Item}"/>
    <DataGridTextColumn Header="Price" FontSize="12" Binding="{Binding XPath=/Foods/Food/Price}"/>
    <DataGridTextColumn Header="P" FontSize="12" Binding="{Binding XPath=/Foods/Food/P}"/>
    <DataGridTextColumn Header="C" FontSize="12" Binding="{Binding XPath=/Foods/Food/C}"/>          
    </DataGrid.Columns>
    
    </DataGrid>
    

    XML:

    <?xml version="1.0" encoding="utf-8" ?>
        <Foods>
          <Food>
            <Quantity>1</Quantity>
            <Item>SMALL COFFEE</Item>
        <Price>0.95</Price>
        <P>N</P>
        <C>1</C>
          </Food>
        <Food>
            <Quantity>1</Quantity>
            <Item>CHEESE CAKE</Item>
        <Price>4.50</Price>
        <P>N</P>
        <C>1</C>
          </Food>
        <Food>
            <Quantity>1</Quantity>
            <Item>SPAGHETTI</Item>
        <Price>13.50</Price>
        <P>N</P>
        <C>1</C>
          </Food>
    
        </Foods>
    

    数据报不显示任何内容。

    我错过什么了吗?

    2 回复  |  直到 10 年前
        1
  •  3
  •   Aviad P.    14 年前

    你的 XmlDataSource 已经占用了所有节点 /Foods/Food 所以您不需要指定 XPath 在你的绑定中。尝试移除它,这样:

    <DataGridTextColumn Header="Quantity" FontSize="12" Binding="{Binding XPath=Quantity}" />
    
        2
  •  0
  •   user3033411    10 年前

    我也有同样的问题。add xmlns=“”为我解决了问题。

    您可能需要将xmlns=“”添加到食物中。

    而不是

    使用