2013-06-09 4 views
0

저는 XamlPad를 가지고 놀았습니다. XAML에 일부 XML을 포함시켜 가짜 데이터 집합을 제공한다고 생각했습니다. 나는 기쁨이별로 없다. 이것은 컴파일되지만 목록의 항목을 표시하지 않습니다. (편집 : 계층 적 측면은 나중에 사용하는 것입니다. 지금은 목록에 항목을 표시하려고합니다.) 당신이 XmlDataProvider에서의 XPath = "인 parentNode"를 제거하면XmlDataProvider, XPath 및 ListBox

<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> 

, 그것은 목록 상자에, 그대로, 전체 문서를 추가합니다. 목록 상자에 두 개의 노드가있는 것을 선호합니다 (각 ParentNode에 하나씩).

답변

0

Okie dokie, 해결책은 간단했습니다. xml에 빈 네임 스페이스를 추가 한 다음 평소와 같이 xpaths를 수행했습니다. 여기에 해결책이 있습니다.

<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>