ListView分组和选择

时间:2012-09-20 12:26:07

标签: c# wpf

我有一个ListView绑定到一组对象。根据用户的选择,对象按其属性进行分组。

例如,我有水果的基本集合(品种,数量,来源):

Banana, 10, Africa
Apple, 2, France
Pear, 30, France
Banana, 40, Africa

成为,按各种水果分组:

Banana
    Banana, 10, Africa
    Banana, 40, Africa

Apple
    Apple, 2, France

Pear
    Pear, 30, France

对于每个对象和组头,我在XAML中添加一个复选框以供选择。使用组头中的复选框,我想选择整个组。 对于上面的例子,如果我检查标题“Banana”,则检查同一组中下面的2行。

这是我的ListView的XAML:

<ListView Name="MyCollectionView" ItemsSource="{Binding}" SelectionMode="Multiple">
  <ListView.GroupStyle>
    <GroupStyle>
      <GroupStyle.HeaderTemplate>
        <DataTemplate>
          <StackPanel Orientation="Horizontal">
            <CheckBox Name="SelectAllGroup" />
            <TextBlock Text="{Binding Name}" Margin="10,0,0,0" />
          </StackPanel>
        </DataTemplate>
      </GroupStyle.HeaderTemplate>
    </GroupStyle>
  </ListView.GroupStyle>

  <ListView.View>
    <GridView>
      <GridViewColumn Width="Auto" Header="Sélection" >
       <GridViewColumn.CellTemplate>
         <DataTemplate>
           <CheckBox Margin="0" VerticalAlignment="Center" IsChecked="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListViewItem}}, Path=IsSelected}"/>
         </DataTemplate>
       </GridViewColumn.CellTemplate>
     </GridViewColumn>
     <GridViewColumn Width="Auto" Header="N°" DisplayMemberBinding="{Binding Path=Numero}"/>
     <GridViewColumn Width="Auto" Header="Nom" DisplayMemberBinding="{Binding Path=Nom}" />
     <GridViewColumn Width="Auto" Header="Responsable" DisplayMemberBinding="{Binding Path=Responsable}" />
     <GridViewColumn Width="Auto" Header="Détail" DisplayMemberBinding="{Binding Path=Detail}" />
     <GridViewColumn Width="Auto" Header="Calibre" DisplayMemberBinding="{Binding Path=Calibre}" />
    </GridView>
  </ListView.View>
</ListView>   

我该怎么做?

提前致谢。

0 个答案:

没有答案