如何检查数据网格标题中的所有子复选框

时间:2016-06-30 03:02:15

标签: c# wpf checkbox datagrid expander

我有一个带有3级分组的数据网格。使用CollectionView和PropertyGroupDescription在代码后面进行分组。 每行记录都有一个DataTemplateColumn(CheckBox)。我在每个标题的前面包含一个复选框,以便我可以检查所有子数据。 不幸的是我尝试了一些方法,但我无法检查所有子复选框。

enter image description here

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);

0 个答案:

没有答案