WEB开发网
开发学院WEB开发ASP.NET WPF学习笔记12. Binding (5) 阅读

WPF学习笔记12. Binding (5)

 2010-10-11 16:35:20 来源:本站整理   
核心提示:10. 数据提供程序(1) XmlDataProviderXmlDataProvider 允许我们直接将 XML 数据作为数据源,我们将前面章节的例子改成 XML 数据岛试试,WPF学习笔记12. Binding (5),注意此时我们已经不需要在代码中定义 Personal、PersonalList 类型,<Wi

10. 数据提供程序

(1) XmlDataProvider

XmlDataProvider 允许我们直接将 XML 数据作为数据源,我们将前面章节的例子改成 XML 数据岛试试,注意此时我们已经不需要在代码中定义 Personal、PersonalList 类型。

<Window x:Class="Learn.WPF.Window1"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Title="Window1">
  <Window.Resources>
    <XmlDataProvider x:Key="personals" XPath="Personals">
      <x:XData>
        <Personals xmlns="">
          <Personal Name="Tom" Age="15" Sex="Male" />
          <Personal Name="Mary" Age="11" Sex="Female" />
          <Personal Name="Jack" Age="12" Sex="Male" />
        </Personals>
      </x:XData>
    </XmlDataProvider>
  </Window.Resources>
  <Grid>
    <StackPanel DataContext="{StaticResource personals}">
      <ListBox x:Name="listbox1" ItemsSource="{Binding XPath=*}">
        <ListBox.ItemTemplate>
          <DataTemplate>
            <StackPanel Orientation="Horizontal">
              <TextBlock Text="{Binding XPath=@Name}" />
              <TextBlock>,</TextBlock>
              <TextBlock Text="{Binding XPath=@Age}" />
              <TextBlock>,</TextBlock>
              <TextBlock Text="{Binding XPath=@Sex}" />
            </StackPanel>
          </DataTemplate>
        </ListBox.ItemTemplate>
      </ListBox>
    </StackPanel>
  </Grid>
</Window>

在资源中定义 XML 数据岛,注意 "Personals xmlns" 不能省略,另外采用 XPath 进行了绑定操作 (XPath 的语法可参考 MSDN 文档)。除了使用数据岛,我们还以使用 XML 数据文件。

Window1.xaml

<Window x:Class="Learn.WPF.Window1"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:my="clr-namespace:Learn.WPF"
  Title="Window1">
  <Window.Resources>
    <XmlDataProvider x:Key="personals" Source="pack://siteOfOrigin:,,,/Personals.xml" 
      XPath="Personals" />

  </Window.Resources>
  <Grid>
    <StackPanel DataContext="{StaticResource personals}">
      <ListBox x:Name="listbox1" ItemsSource="{Binding XPath=*}">
        <ListBox.ItemTemplate>
          <DataTemplate>
            <StackPanel Orientation="Horizontal">
              <TextBlock Text="{Binding XPath=@Name}" />
              <TextBlock>,</TextBlock>
              <TextBlock Text="{Binding XPath=@Age}" />
              <TextBlock>,</TextBlock>
              <TextBlock Text="{Binding XPath=@Sex}" />
            </StackPanel>
          </DataTemplate>
        </ListBox.ItemTemplate>
      </ListBox>
    </StackPanel>
  </Grid>
</Window>

1 2 3 4  下一页

Tags:WPF 学习 笔记

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接