当我单击wpf中DataGrid的一部分时,如何在DataGrid中选择所有列标题复选框



i有一个列表框,其中我添加了两个控件,即复选框和一个datagrid并排作为listBoxItem。我以以下方式完成了此操作:

在代码后面:
ListBox1.items.Add(dt)

这里dt是表名。

在XAML中:

<ListBox Grid.Row="0" AlternationCount="2" MinHeight="305" HorizontalAlignment="Stretch"  Name="listBox1" VerticalAlignment="Stretch" MinWidth="537" >            
        <ListBox.ItemTemplate>                
            <DataTemplate>                    
                    <StackPanel Name="stkPanel" MinHeight="80" MinWidth="500" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="40"/>
                            <ColumnDefinition Width="Auto"/>
                        </Grid.ColumnDefinitions>
                        <DataGrid Grid.Column="1" 
                                  AutoGenerateColumns="True" 
                                  MinHeight="75" 
                                  HorizontalAlignment="Center" 
                                  Name="dataGrid1" 
                                  VerticalAlignment="Stretch" 
                                  MinWidth="470" 
                                  MaxWidth="900" 
                                  ItemsSource="{Binding}" 
                                  IsReadOnly="True" Background="#E6BAB7B7">
                            <DataGrid.ColumnHeaderStyle>
                                <Style TargetType="DataGridColumnHeader">
                                    <Setter Property="ContentTemplate">
                                        <Setter.Value>
                                            <DataTemplate>
                                                <CheckBox Name="colCheckBox" Content="{Binding}"/>
                                            </DataTemplate>
                                        </Setter.Value>
                                    </Setter>
                                </Style>
                            </DataGrid.ColumnHeaderStyle>
                        </DataGrid>
                        <CheckBox  Grid.Column="0" Height="35" Width="25" Name="IsDone" HorizontalAlignment="Right" VerticalAlignment="Center" Checked="IsDone_Checked" />
                        </Grid>                        
                </StackPanel>                   
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox> 

现在,当我选中" ISDONE"复选框时,即ListBoxItem的一部分时,应选中该特定列表框项目行中datagrid(也是列表框项目)中存在的所有复选框。如果未选中DataGrid的列标题中的任何复选框,则" ISDONE"复选框也应同时进行。您可以建议我如何做吗?

预先感谢

Element Binding,这将解决问题。

<DataTemplate>                    
                <StackPanel Name="stkPanel" MinHeight="80" MinWidth="500" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="40"/>
                        <ColumnDefinition Width="Auto"/>
                    </Grid.ColumnDefinitions>
                    <DataGrid Grid.Column="1" 
                              AutoGenerateColumns="True" 
                              MinHeight="75" 
                              HorizontalAlignment="Center" 
                              Name="dataGrid1" 
                              VerticalAlignment="Stretch" 
                              MinWidth="470" 
                              MaxWidth="900" 
                              ItemsSource="{Binding}" 
                              IsReadOnly="True" Background="#E6BAB7B7">
                        <DataGrid.ColumnHeaderStyle>
                            <Style TargetType="DataGridColumnHeader">
                                <Setter Property="ContentTemplate">
                                    <Setter.Value>
                                        <DataTemplate>
                                            <CheckBox Name="colCheckBox" IsChecked="{Binding IsChecked, ElementName=IsDone, Mode=OneWay}" Content="{Binding}"/>
                                        </DataTemplate>
                                    </Setter.Value>
                                </Setter>
                            </Style>
                        </DataGrid.ColumnHeaderStyle>
                    </DataGrid>
                    <CheckBox  Grid.Column="0" Height="35" Width="25" x:Name="IsDone" HorizontalAlignment="Right" VerticalAlignment="Center" Checked="IsDone_Checked" />
                    </Grid>                        
            </StackPanel>                   
        </DataTemplate>

最新更新