我一直在和XamlPad玩。我想我应该将一些XML嵌入到XAML中,从而得到一组虚假的分层数据。我没有太多的快乐。这将进行编译,但不会显示列表中的项。(编辑:分层方面是为以后准备的。现在,我只想让内容出现在列表中)。
<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一个。
发布于 2013-06-09 23:31:12
好的,解决方案很简单,我向xml添加了一个空的名称空间,然后像往常一样执行xpath。这就是解决方案。
<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>https://stackoverflow.com/questions/17009613
复制相似问题