DataGridTemplateColumn.HeaderTemplate问题

时间:2013-01-18 12:32:10

标签: c# wpf datagrid

请帮助解决这个问题,我不知道如何解决这个问题。

我有combox box和datagrid。当我选择了combox值时,datagrid应该加载新数据并且完美无缺。但是,当我选中带复选框的所有列时,我的DataGridTemplateColumn.HeaderTemplate带复选框也被选中,并且也可以使用未选中。两者都很好。

现在我的问题是当我选择了combobox,datagrid - >应该取消选中headertemplate复选框。我有什么事可以解雇吗?我的代码如下。

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>

1 个答案:

答案 0 :(得分:0)

为Content Control创建一个ControlTemplate,并将DataGrid和ComboBox Xaml放入其中。现在,您可以为Combobox创建一个EventTrigger,在那里您可以使用绑定中的元素名称设置CheckedBox Checked。 This可以提供帮助。