专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 其他开发语言

WPF 多层绑定XML,该如何处理

发布时间:2011-06-30 07:31:04 文章来源:www.iduyao.cn 采编人员:星星草
WPF 多层绑定XML
XML文件

<?xml version="1.0" encoding="utf-8" ?>
<a>
  <b name="一" code="001">
  <c cname="一.1" code="001001" />
  <c cname="一.2" code="001002" />
  <c cname="一.3" code="001003" />

  </b>
  <b name="二" code="002" />
  <c cname="二.1" code="002001" />
  <c cname="二.2" code="002002" />
  <c cname="二.3" code="002003" />
</a>

test.xaml

<Window x:Class="Wpf1.test2"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Title="test2" Height="300" Width="300">
  <Window.Resources>
  <XmlDataProvider x:Key="xmldata" Source="data/x2.xml" XPath="a/b"/>
  <DataTemplate x:Key="dataTemplate2">
  <Grid Width="300">
  <Grid.ColumnDefinitions>
  <ColumnDefinition Width="150"/>
  <ColumnDefinition Width="150"/>
  </Grid.ColumnDefinitions>
  <Grid.RowDefinitions>
  <RowDefinition></RowDefinition>
  <RowDefinition></RowDefinition>
  </Grid.RowDefinitions>
  <TextBlock Grid.Column="0" Grid.Row="0" Text="{Binding XPath=@cname}" />
  <TextBlock Grid.Column="1" Grid.Row="0" Text="{Binding XPath=@code}" />
  </Grid>
  </DataTemplate>

  <DataTemplate x:Key="dataTemplate1">
  <Grid Width="300">
  <Grid.ColumnDefinitions>
  <ColumnDefinition Width="150"/>
  <ColumnDefinition Width="150"/>
  </Grid.ColumnDefinitions>
  <Grid.RowDefinitions>
  <RowDefinition Height="15"/>
  <RowDefinition/>
  </Grid.RowDefinitions>
  <TextBlock Grid.Column="0" Grid.Row="0" Text="{Binding XPath=@name}" />
  <TextBlock Grid.Column="1" Grid.Row="0" Text="{Binding XPath=@code}" />
  <ListBox ItemsSource="{Binding}" ItemTemplate="{StaticResource dataTemplate2}"
  Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="2"/>
  </Grid>
  </DataTemplate>
  </Window.Resources>
  <Grid DataContext="{Binding Source={StaticResource xmldata}}" Width="310" >
  <Grid.ColumnDefinitions>
  <ColumnDefinition Width="150"/>
  <ColumnDefinition Width="150"/>
  </Grid.ColumnDefinitions>
  <Grid.RowDefinitions>
  <RowDefinition Height="15"/>
  <RowDefinition/>
  </Grid.RowDefinitions>
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: