我有一个绑定到对象集合的 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 中添加了一个复选框以供选择。使用组标题中的复选框,我想选择整个组。对于上面的示例,如果我检查标题“香蕉”,则检查同一组中的以下 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>
我怎样才能做到这一点 ?
提前致谢。