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

WPF学习笔记11. Binding (4)

 2010-10-11 16:33:44 来源:本站整理   
核心提示:要看到效果,我们还必须为 ListBox 添加一个 GroupStyle,WPF学习笔记11. Binding (4)(3),基于一贯偷懒的理由,我们可以直接使用系统内置的 GroupStyle.Default,Window1.xaml<Windowx:Class="Learn.WPF.Window1&

要看到效果,我们还必须为 ListBox 添加一个 GroupStyle,基于一贯偷懒的理由,我们可以直接使用系统内置的 GroupStyle.Default。

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>
    <my:PersonalList x:Key="personals" >
      <my:Personal Name="Tom" Age="15" Sex="Male" />
      <my:Personal Name="Mary" Age="11" Sex="Female" />
      <my:Personal Name="Jack" Age="12" Sex="Male" />
    </my:PersonalList>
  </Window.Resources>
  <Grid>
    <StackPanel DataContext="{StaticResource personals}">
      <ListBox x:Name="listbox1" ItemsSource="{Binding}">
        <ListBox.GroupStyle>
          <x:Static Member="GroupStyle.Default"/>
        </ListBox.GroupStyle>
      
        <ListBox.ItemTemplate>
          <DataTemplate>
            <StackPanel Orientation="Horizontal">
              <TextBlock Text="{Binding Path=Name}" />
              <TextBlock>,</TextBlock>
              <TextBlock Text="{Binding Path=Age}" />
              <TextBlock>,</TextBlock>
              <TextBlock Text="{Binding Path=Sex}" />
            </StackPanel>
          </DataTemplate>
        </ListBox.ItemTemplate>
      </ListBox>
    </StackPanel>
  </Grid>
</Window>

这回看上去好多了。

当然,Gr

oupDescriptions 同样也可以写在 XAML 里。

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"
  xmlns:data="clr-namespace:System.Windows.Data;assembly=PresentationFramework"
  Title="Window1">
  <Window.Resources>
    <my:PersonalList x:Key="personals" >
      <my:Personal Name="Tom" Age="15" Sex="Male" />
      <my:Personal Name="Mary" Age="11" Sex="Female" />
      <my:Personal Name="Jack" Age="12" Sex="Male" />
    </my:PersonalList>
    <CollectionViewSource x:Key="cvs" Source="{StaticResource personals}">
      <CollectionViewSource.GroupDescriptions>
        <data:PropertyGroupDescription PropertyName="Sex" />
      </CollectionViewSource.GroupDescriptions>
    </CollectionViewSource>
  </Window.Resources>
  <Grid>
    <StackPanel DataContext="{StaticResource cvs}">
      <ListBox x:Name="listbox1" ItemsSource="{Binding}">
        <ListBox.GroupStyle>
          <x:Static Member="GroupStyle.Default"/>
        </ListBox.GroupStyle>
        <ListBox.ItemTemplate>
          <DataTemplate>
            <StackPanel Orientation="Horizontal">
              <TextBlock Text="{Binding Path=Name}" />
              <TextBlock>,</TextBlock>
              <TextBlock Text="{Binding Path=Age}" />
              <TextBlock>,</TextBlock>
              <TextBlock Text="{Binding Path=Sex}" />
            </StackPanel>
          </DataTemplate>
        </ListBox.ItemTemplate>
      </ListBox>
    </StackPanel>
  </Grid>
</Window>

注意引入 xmlns:data="clr-namespace:System.Windows.Data;assembly=PresentationFramework" 命名空间。

上一页  1 2 3 4 5  下一页

Tags:WPF 学习 笔记

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