WPF 问题总结之 CheckBox 全选

1 篇文章 0 订阅

最近在做WPF项目,遇到很多问题。


1,DataGrid 全选 Checkbox           

    <DataGrid Name="dgrdAverageWage" AutoGenerateColumns="True" Height="524" Margin="11,0,24,43"  VerticalAlignment="Bottom" SelectionMode="Extended" SelectionUnit="Cell"
                      RowDetailsVisibilityMode="VisibleWhenSelected"
                      EnableRowVirtualization="False"    //关闭虚拟行 要不 GetCellContent 方法会得到空值
                      Grid.Column="1" LoadingRow="dgrdAverageWage_LoadingRow">
                <DataGrid.Columns>       

                    <DataGridTemplateColumn Header="选择" CanUserReorder="False">
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <CheckBox Name="cb"  IsChecked="{Binding IsChecked, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Cursor="Hand"/>
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>
                </DataGrid.Columns>
            </DataGrid>

            foreach (var item in dgrdAverageWage.Items)
            {
                DataGridTemplateColumn templeColumn = dgrdAverageWage.Columns[0] as DataGridTemplateColumn;
                FrameworkElement fwElement = dgrdAverageWage.Columns[0].GetCellContent(item);
                if (fwElement != null)
                {
                    CheckBox cBox = templeColumn.CellTemplate.FindName("cb", fwElement) as CheckBox;
                    if (cBox != null)
                    {
                        cBox.IsChecked = _bSelect;
                    }
                    else
                    {

                    }
                }
                else
                {

                }

            }

            if (_bSelect)
            {
                
                btnSelect.Content = "全未选(&A)";
                _bSelect = false;
                //dgrdAverageWage.SelectAll();
            }
            else
            {
                
                btnSelect.Content = "全选(&A)";
                _bSelect = true;
                //dgrdAverageWage.UnselectAll();
            }


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值