我有一个带有3级分组的数据网格。使用CollectionView和PropertyGroupDescription在代码后面进行分组。 每行记录都有一个DataTemplateColumn(CheckBox)。我在每个标题的前面包含一个复选框,以便我可以检查所有子数据。 不幸的是我尝试了一些方法,但我无法检查所有子复选框。
xaml代码
<DataGrid.GroupStyle>
<GroupStyle>
<GroupStyle.ContainerStyle>
<Style TargetType="{x:Type GroupItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Expander x:Name="MyExpander" IsExpanded="True">
<Expander.Header>
<StackPanel Orientation="Horizontal">
<CheckBox Click="checkBoxHeader_Click"/>
<TextBlock x:Name="MyExpanderHeader" Text="{Binding Name}" FontWeight="Bold" VerticalAlignment="Bottom">
</TextBlock>
</StackPanel>
</Expander.Header>
<ItemsPresenter Margin="20,0,0,0"/>
</Expander>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</GroupStyle.ContainerStyle>
</GroupStyle>
</DataGrid.GroupStyle>
cs代码
CollectionView collectionView = (CollectionView)CollectionViewSource.GetDefaultView(m_stationInfoList);
PropertyGroupDescription groupDescription1 = new PropertyGroupDescription("Property1");
PropertyGroupDescription groupDescription2 = new PropertyGroupDescription("Property2");
PropertyGroupDescription groupDescription3 = new PropertyGroupDescription("Property3");
collectionView.GroupDescriptions.Clear();
collectionView.GroupDescriptions.Add(groupDescription1);
collectionView.GroupDescriptions.Add(groupDescription2);
collectionView.GroupDescriptions.Add(groupDescription3);