首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XmlDataProvider、XPath和ListBox

XmlDataProvider、XPath和ListBox
EN

Stack Overflow用户
提问于 2013-06-09 20:29:46
回答 1查看 323关注 0票数 0

我一直在和XamlPad玩。我想我应该将一些XML嵌入到XAML中,从而得到一组虚假的分层数据。我没有太多的快乐。这将进行编译,但不会显示列表中的项。(编辑:分层方面是为以后准备的。现在,我只想让内容出现在列表中)。

代码语言:javascript
复制
    <Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
    <Page.Resources>
      <XmlDataProvider x:Key="MyXmlData" XPath="ParentNode">
          <x:XData>
            <MyDoc>Wee
                <ParentNode>Hi</ParentNode>
                <ParentNode>Low</ParentNode>
            </MyDoc>
          </x:XData>
      </XmlDataProvider>  
  </Page.Resources>
  <Border BorderBrush="Green" BorderThickness="5">
  <Grid DataContext="{StaticResource MyXmlData}" ShowGridLines="True">
  <Grid.RowDefinitions>
      <RowDefinition Height="1*"/>
      <RowDefinition Height="2*"/>
      <RowDefinition Height="3*"/>
  </Grid.RowDefinitions>
  <Grid.ColumnDefinitions>
  <ColumnDefinition />
  <ColumnDefinition />
  <ColumnDefinition />
  </Grid.ColumnDefinitions>
    <ListBox Grid.Row="1" Grid.Column="0" ItemsSource="{Binding}" Background="LightGray">
    </ListBox>
  </Grid>
  </Border>
</Page>

如果从XmlDataProvider中删除XPath="ParentNode“,则会将整个文档逐字添加到列表框中。我更喜欢在列表框中有两个节点,每个ParentNode一个。

EN

回答 1

Stack Overflow用户

发布于 2013-06-09 23:31:12

好的,解决方案很简单,我向xml添加了一个空的名称空间,然后像往常一样执行xpath。这就是解决方案。

代码语言:javascript
复制
    <Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
    <Page.Resources>
      <XmlDataProvider x:Key="MyDataProvider" XPath="MyDoc">
          <x:XData>
            <MyDoc xmlns="">Wee
                <ParentNode>Hi</ParentNode>
                <ParentNode>Low</ParentNode>
            </MyDoc>
          </x:XData>
      </XmlDataProvider>  
  </Page.Resources>
  <Border BorderBrush="Green" BorderThickness="5">
  <Grid DataContext="{StaticResource MyDataProvider}" ShowGridLines="True">
  <Grid.RowDefinitions>
      <RowDefinition Height="1*"/>
      <RowDefinition Height="2*"/>
      <RowDefinition Height="3*"/>
  </Grid.RowDefinitions>
  <Grid.ColumnDefinitions>
  <ColumnDefinition />
  <ColumnDefinition />
  <ColumnDefinition />
  </Grid.ColumnDefinitions>
    <ListBox Grid.Row="1" Grid.Column="0" ItemsSource="{Binding XPath=*}"  Background="LightGray">
    </ListBox>
  </Grid>
  </Border>
</Page>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17009613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档