wpf datagrid 加入checkbox

直接代码,不废话

 

<my:DataGrid AutoGenerateColumns="False" IsReadOnly="True" Margin="271,35,12,40" Name="dataGrid1" xmlns:my="http://schemas.microsoft.com/wpf/2008/toolkit" Grid.Row="1">
            <my:DataGrid.Columns>
                <my:DataGridTemplateColumn Header="全选/全不选" Width="110">
                    <my:DataGridTemplateColumn.HeaderStyle>
                        <Style TargetType="my:DataGridColumnHeader">
                            <Setter Property="Background">
                                <Setter.Value>
                                    <LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
                                        <GradientStop Color="White" Offset="0" />
                                        <GradientStop Color="LightPink" Offset="0.5" />
                                        <GradientStop Color="White" Offset="1" />
                                    </LinearGradientBrush>
                                </Setter.Value>
                            </Setter>
                            <Setter Property="Foreground" Value="Black" />
                            <Setter Property="FontSize" Value="14" />
                        </Style>
                    </my:DataGridTemplateColumn.HeaderStyle>
                    <my:DataGridTemplateColumn.HeaderTemplate>
                        <DataTemplate>
                            <CheckBox Checked="ckbSelectedAll_Checked" Margin="10,0" Name="ckbSelectedAll" Unchecked="ckbSelectedAll_Unchecked">全选/全不选</CheckBox>
                        </DataTemplate>
                    </my:DataGridTemplateColumn.HeaderTemplate>
                    <my:DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <CheckBox HorizontalAlignment="Center" IsChecked="{Binding IsChecked, Mode=TwoWay}" VerticalAlignment="Center" />
                        </DataTemplate>
                    </my:DataGridTemplateColumn.CellTemplate>
                </my:DataGridTemplateColumn>
                <my:DataGridTextColumn Binding="{Binding xx}" Header="xx">
                    <my:DataGridTextColumn.HeaderStyle>
                        <Style TargetType="my:DataGridColumnHeader">
                            <Setter Property="Background">
                                <Setter.Value>
                                    <LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
                                        <GradientStop Color="White" Offset="0" />
                                        <GradientStop Color="LightGreen" Offset="0.5" />
                                        <GradientStop Color="White" Offset="1" />
                                    </LinearGradientBrush>
                                </Setter.Value>
                            </Setter>
                            <Setter Property="Foreground" Value="Black" />
                            <Setter Property="FontSize" Value="14" />
                        </Style>
                    </my:DataGridTextColumn.HeaderStyle>
                </my:DataGridTextColumn>
                <my:DataGridTextColumn Binding="{Binding xx}" Header="xx">
                    <my:DataGridTextColumn.HeaderStyle>
                        <Style TargetType="my:DataGridColumnHeader">
                            <Setter Property="Background">
                                <Setter.Value>
                                    <LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
                                        <GradientStop Color="White" Offset="0" />
                                        <GradientStop Color="Yellow" Offset="0.5" />
                                        <GradientStop Color="White" Offset="1" />
                                    </LinearGradientBrush>
                                </Setter.Value>
                            </Setter>
                            <Setter Property="Foreground" Value="Black" />
                            <Setter Property="FontSize" Value="14" />
                        </Style>
                    </my:DataGridTextColumn.HeaderStyle>
                </my:DataGridTextColumn>
            </my:DataGrid.Columns>
        </my:DataGrid>

 

 

private void ckbSelectedAll_Checked(object sender, RoutedEventArgs e)
        {
            foreach (DataRow row in dt.Rows)
            {
                row["IsChecked"] = true;
            }
        }

        private void ckbSelectedAll_Unchecked(object sender, RoutedEventArgs e)
        {
            foreach (DataRow row in dt.Rows)
            {
                row["IsChecked"] = false;
            }
        }

 

当然,华丽的效果,还是要配合美工实现,可是我目前只有一个人孤军奋战,而且以前没接触过c#,只花了三四天时间看了下c#和wpf,写的很简陋,不要见笑。我还在继续学习中。(之所以只花了三四天时间看了下,是因为我更喜欢实际动手做一下。我知道,我从来不擅长于考试、理论之类的东西,但我也十分的清楚,我能理解并将其付之于实践,这就是我的强项。)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值