C# DataGridTemplateColumn.HeaderTemplate问题

C# DataGridTemplateColumn.HeaderTemplate问题,c#,wpf,datagrid,C#,Wpf,Datagrid,请在这个问题上提供帮助,我不知道如何处理这个问题 <DataGridTemplateColumn> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <Check

请在这个问题上提供帮助,我不知道如何处理这个问题

                        <DataGridTemplateColumn>
                            <DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <CheckBox Name="checkadded" Margin="6,0" IsChecked="{Binding IsSelected, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True, UpdateSourceTrigger=PropertyChanged}"  />
                                </DataTemplate>
                            </DataGridTemplateColumn.CellTemplate>

                        <DataGridTemplateColumn.HeaderTemplate>

                            <DataTemplate>
                                <CheckBox Name="ChkAllAdd" IsChecked="False" Width="50" Loaded="chkallLoaded" Checked="ChkAll_Checked"  Unchecked="ChkAll_Unchecked"  IsThreeState="False" Padding="4,3,4,3" HorizontalContentAlignment="Left" HorizontalAlignment="Center"  />
                            </DataTemplate>

                        </DataGridTemplateColumn.HeaderTemplate>

                        </DataGridTemplateColumn>


                    </DataGrid.Columns>                        

                    <DataGrid.Resources>

                        <Style TargetType="{x:Type DataGridColumnHeader}">
                            <Setter Property="Foreground" Value="#686868"/>
                            <Setter Property="FontWeight"  Value="Bold" />
                        </Style>

                        <Style TargetType="{x:Type DataGridCell}" >
                            <Style.Triggers>
                                <Trigger Property="IsSelected" Value="True">
                                    <Setter Property="Foreground" Value="white"/>
                                    <Setter Property="Background" Value="#93A8A9"/>
                                    <Setter Property="FontWeight" Value="Bold"/>
                                </Trigger>
                            </Style.Triggers>
                        </Style>

                    </DataGrid.Resources>

                </DataGrid>
我有combox box和datagrid。当我选择combox值时,datagrid应该加载新的数据,这非常有效。但是我选中了DataGridTemplateColumn.HeaderTemplatewithCheckbox,当我选中所有列with checkbox时,它也被选中,并且也被选中。两者都很好

                        <DataGridTemplateColumn>
                            <DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <CheckBox Name="checkadded" Margin="6,0" IsChecked="{Binding IsSelected, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True, UpdateSourceTrigger=PropertyChanged}"  />
                                </DataTemplate>
                            </DataGridTemplateColumn.CellTemplate>

                        <DataGridTemplateColumn.HeaderTemplate>

                            <DataTemplate>
                                <CheckBox Name="ChkAllAdd" IsChecked="False" Width="50" Loaded="chkallLoaded" Checked="ChkAll_Checked"  Unchecked="ChkAll_Unchecked"  IsThreeState="False" Padding="4,3,4,3" HorizontalContentAlignment="Left" HorizontalAlignment="Center"  />
                            </DataTemplate>

                        </DataGridTemplateColumn.HeaderTemplate>

                        </DataGridTemplateColumn>


                    </DataGrid.Columns>                        

                    <DataGrid.Resources>

                        <Style TargetType="{x:Type DataGridColumnHeader}">
                            <Setter Property="Foreground" Value="#686868"/>
                            <Setter Property="FontWeight"  Value="Bold" />
                        </Style>

                        <Style TargetType="{x:Type DataGridCell}" >
                            <Style.Triggers>
                                <Trigger Property="IsSelected" Value="True">
                                    <Setter Property="Foreground" Value="white"/>
                                    <Setter Property="Background" Value="#93A8A9"/>
                                    <Setter Property="FontWeight" Value="Bold"/>
                                </Trigger>
                            </Style.Triggers>
                        </Style>

                    </DataGrid.Resources>

                </DataGrid>
现在我的问题是,当我选择combobox时,datagrid-->headertemplate复选框应该被取消选中。有什么活动我可以为此而开火吗?下面是我的代码

                        <DataGridTemplateColumn>
                            <DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <CheckBox Name="checkadded" Margin="6,0" IsChecked="{Binding IsSelected, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True, UpdateSourceTrigger=PropertyChanged}"  />
                                </DataTemplate>
                            </DataGridTemplateColumn.CellTemplate>

                        <DataGridTemplateColumn.HeaderTemplate>

                            <DataTemplate>
                                <CheckBox Name="ChkAllAdd" IsChecked="False" Width="50" Loaded="chkallLoaded" Checked="ChkAll_Checked"  Unchecked="ChkAll_Unchecked"  IsThreeState="False" Padding="4,3,4,3" HorizontalContentAlignment="Left" HorizontalAlignment="Center"  />
                            </DataTemplate>

                        </DataGridTemplateColumn.HeaderTemplate>

                        </DataGridTemplateColumn>


                    </DataGrid.Columns>                        

                    <DataGrid.Resources>

                        <Style TargetType="{x:Type DataGridColumnHeader}">
                            <Setter Property="Foreground" Value="#686868"/>
                            <Setter Property="FontWeight"  Value="Bold" />
                        </Style>

                        <Style TargetType="{x:Type DataGridCell}" >
                            <Style.Triggers>
                                <Trigger Property="IsSelected" Value="True">
                                    <Setter Property="Foreground" Value="white"/>
                                    <Setter Property="Background" Value="#93A8A9"/>
                                    <Setter Property="FontWeight" Value="Bold"/>
                                </Trigger>
                            </Style.Triggers>
                        </Style>

                    </DataGrid.Resources>

                </DataGrid>
Combox在数据网格之外

                        <DataGridTemplateColumn>
                            <DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <CheckBox Name="checkadded" Margin="6,0" IsChecked="{Binding IsSelected, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True, UpdateSourceTrigger=PropertyChanged}"  />
                                </DataTemplate>
                            </DataGridTemplateColumn.CellTemplate>

                        <DataGridTemplateColumn.HeaderTemplate>

                            <DataTemplate>
                                <CheckBox Name="ChkAllAdd" IsChecked="False" Width="50" Loaded="chkallLoaded" Checked="ChkAll_Checked"  Unchecked="ChkAll_Unchecked"  IsThreeState="False" Padding="4,3,4,3" HorizontalContentAlignment="Left" HorizontalAlignment="Center"  />
                            </DataTemplate>

                        </DataGridTemplateColumn.HeaderTemplate>

                        </DataGridTemplateColumn>


                    </DataGrid.Columns>                        

                    <DataGrid.Resources>

                        <Style TargetType="{x:Type DataGridColumnHeader}">
                            <Setter Property="Foreground" Value="#686868"/>
                            <Setter Property="FontWeight"  Value="Bold" />
                        </Style>

                        <Style TargetType="{x:Type DataGridCell}" >
                            <Style.Triggers>
                                <Trigger Property="IsSelected" Value="True">
                                    <Setter Property="Foreground" Value="white"/>
                                    <Setter Property="Background" Value="#93A8A9"/>
                                    <Setter Property="FontWeight" Value="Bold"/>
                                </Trigger>
                            </Style.Triggers>
                        </Style>

                    </DataGrid.Resources>

                </DataGrid>

                        <DataGridTemplateColumn>
                            <DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <CheckBox Name="checkadded" Margin="6,0" IsChecked="{Binding IsSelected, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True, UpdateSourceTrigger=PropertyChanged}"  />
                                </DataTemplate>
                            </DataGridTemplateColumn.CellTemplate>

                        <DataGridTemplateColumn.HeaderTemplate>

                            <DataTemplate>
                                <CheckBox Name="ChkAllAdd" IsChecked="False" Width="50" Loaded="chkallLoaded" Checked="ChkAll_Checked"  Unchecked="ChkAll_Unchecked"  IsThreeState="False" Padding="4,3,4,3" HorizontalContentAlignment="Left" HorizontalAlignment="Center"  />
                            </DataTemplate>

                        </DataGridTemplateColumn.HeaderTemplate>

                        </DataGridTemplateColumn>


                    </DataGrid.Columns>                        

                    <DataGrid.Resources>

                        <Style TargetType="{x:Type DataGridColumnHeader}">
                            <Setter Property="Foreground" Value="#686868"/>
                            <Setter Property="FontWeight"  Value="Bold" />
                        </Style>

                        <Style TargetType="{x:Type DataGridCell}" >
                            <Style.Triggers>
                                <Trigger Property="IsSelected" Value="True">
                                    <Setter Property="Foreground" Value="white"/>
                                    <Setter Property="Background" Value="#93A8A9"/>
                                    <Setter Property="FontWeight" Value="Bold"/>
                                </Trigger>
                            </Style.Triggers>
                        </Style>

                    </DataGrid.Resources>

                </DataGrid>

                        <DataGridTemplateColumn>
                            <DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <CheckBox Name="checkadded" Margin="6,0" IsChecked="{Binding IsSelected, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True, UpdateSourceTrigger=PropertyChanged}"  />
                                </DataTemplate>
                            </DataGridTemplateColumn.CellTemplate>

                        <DataGridTemplateColumn.HeaderTemplate>

                            <DataTemplate>
                                <CheckBox Name="ChkAllAdd" IsChecked="False" Width="50" Loaded="chkallLoaded" Checked="ChkAll_Checked"  Unchecked="ChkAll_Unchecked"  IsThreeState="False" Padding="4,3,4,3" HorizontalContentAlignment="Left" HorizontalAlignment="Center"  />
                            </DataTemplate>

                        </DataGridTemplateColumn.HeaderTemplate>

                        </DataGridTemplateColumn>


                    </DataGrid.Columns>                        

                    <DataGrid.Resources>

                        <Style TargetType="{x:Type DataGridColumnHeader}">
                            <Setter Property="Foreground" Value="#686868"/>
                            <Setter Property="FontWeight"  Value="Bold" />
                        </Style>

                        <Style TargetType="{x:Type DataGridCell}" >
                            <Style.Triggers>
                                <Trigger Property="IsSelected" Value="True">
                                    <Setter Property="Foreground" Value="white"/>
                                    <Setter Property="Background" Value="#93A8A9"/>
                                    <Setter Property="FontWeight" Value="Bold"/>
                                </Trigger>
                            </Style.Triggers>
                        </Style>

                    </DataGrid.Resources>

                </DataGrid>


为内容控制创建一个ControlTemplate,并将DataGrid和ComboBox Xaml放在其中。现在,您可以为Combobox创建一个EventTrigger,并在绑定中使用元素名设置CheckedBox复选框。可以提供帮助。

我已经用不同的方法完成了,但无论如何,感谢您的回复。我有兴趣了解您的解决方案。你可以给出答案,我也接受。我已经删除了标题模板,因为它太难处理,所以我创建了两个按钮,分别是全选和取消全选……这两次单击将循环数据网格,并选中和取消选中复选框。
                        <DataGridTemplateColumn>
                            <DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <CheckBox Name="checkadded" Margin="6,0" IsChecked="{Binding IsSelected, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True, UpdateSourceTrigger=PropertyChanged}"  />
                                </DataTemplate>
                            </DataGridTemplateColumn.CellTemplate>

                        <DataGridTemplateColumn.HeaderTemplate>

                            <DataTemplate>
                                <CheckBox Name="ChkAllAdd" IsChecked="False" Width="50" Loaded="chkallLoaded" Checked="ChkAll_Checked"  Unchecked="ChkAll_Unchecked"  IsThreeState="False" Padding="4,3,4,3" HorizontalContentAlignment="Left" HorizontalAlignment="Center"  />
                            </DataTemplate>

                        </DataGridTemplateColumn.HeaderTemplate>

                        </DataGridTemplateColumn>


                    </DataGrid.Columns>                        

                    <DataGrid.Resources>

                        <Style TargetType="{x:Type DataGridColumnHeader}">
                            <Setter Property="Foreground" Value="#686868"/>
                            <Setter Property="FontWeight"  Value="Bold" />
                        </Style>

                        <Style TargetType="{x:Type DataGridCell}" >
                            <Style.Triggers>
                                <Trigger Property="IsSelected" Value="True">
                                    <Setter Property="Foreground" Value="white"/>
                                    <Setter Property="Background" Value="#93A8A9"/>
                                    <Setter Property="FontWeight" Value="Bold"/>
                                </Trigger>
                            </Style.Triggers>
                        </Style>

                    </DataGrid.Resources>

                </DataGrid>