有没有办法在wpf中的datagrid中为所有列标题添加复选框

时间:2014-02-04 15:48:50

标签: wpf xaml datagrid

我的listbox包含以下列方式绑定到数据表的datagrid:

在代码背后:

listBox1.Items.Add(dt1);

这里的dt是表名。

在Xaml中:

<ListBox Grid.Row="0" MinHeight="305" HorizontalAlignment="Stretch"  Name="listBox1" VerticalAlignment="Stretch" MinWidth="537" >            
            <ListBox.ItemTemplate>                
                <DataTemplate>                    
                        <StackPanel 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" >
                            </DataGrid>
                            <CheckBox  Grid.Column="0" Height="35" Width="25" Name="IsDone" HorizontalAlignment="Right" VerticalAlignment="Center"/>
                            </Grid>                        
                    </StackPanel>                   
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox> 

我想在datagrid中的所有列标题中添加复选框。您能否建议我如何在Wpf

中的datagrid内的所有列标题中添加复选框

提前致谢

1 个答案:

答案 0 :(得分:1)

您可以为您的DataGrid定义ColumnHeaderStyle,并在该集合中为ContentTemplate设置所有标题的复选框,如下所示:

    <DataGrid>
        <DataGrid.ColumnHeaderStyle>
            <Style TargetType="DataGridColumnHeader">
                <Setter Property="ContentTemplate">
                    <Setter.Value>
                        <DataTemplate>
                            <CheckBox Content="{Binding}"/>
                        </DataTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </DataGrid.ColumnHeaderStyle>
    </DataGrid>