zoukankan      html  css  js  c++  java
  • WPF DataGrid DataGridTemplateColumn 列头checkbox如何在代码中取消选择

    Question

    <DataGrid Name="DG">
                    <DataGrid.Columns>
                        <DataGridTemplateColumn Width="70">
                            <DataGridTemplateColumn.HeaderTemplate>
                                <DataTemplate>
                                    <CheckBox Name="cbbSelALL" Content="全选" Click="cbbSelALL_Click"/>
                                </DataTemplate>
                            </DataGridTemplateColumn.HeaderTemplate>
                            <DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <CheckBox IsChecked="{Binding SelFlag}" Name="cbsel"/>
                                </DataTemplate>
                            </DataGridTemplateColumn.CellTemplate>
                        </DataGridTemplateColumn>

    </DataGrid.Columns>
                </DataGrid>

    代码如上; 当我选中列头的CheckBox后,我重新查询绑定数据时需要将列头的CheckBox的选中状态取消,有什么方法吗?

    可以从VisualTree一层层地查找到CheckBox,代码如下:

     CheckBox chb = GetVisualChild<CheckBox>(DG, v => v.Name == "cbbSelALL");
      if (null != chb)
      {
           chb.IsChecked = false;
      }
            public T GetVisualChild<T>(DependencyObject parent, Func<T, bool> predicate) where T : Visual
            {
                int numVisuals = VisualTreeHelper.GetChildrenCount(parent);
                for (int i = 0; i < numVisuals; i++)
                {
                    DependencyObject v = (DependencyObject)VisualTreeHelper.GetChild(parent, i);
                    T child = v as T;
                    if (child == null)
                    {
                        child = GetVisualChild<T>(v, predicate);
                        if (child != null)
                        {
                            return child;
                        }
                    }
                    else
                    {
                        if (predicate(child))
                        {
                            return child;
                        }
                    }
                }
    
                return null;
            }
  • 相关阅读:
    jenkins 安装插件失败
    win10 右键新建卡顿
    Linux发布java jar包
    Linux搭建java环境
    java代码检出打包
    虚拟机Vmware使用记录
    地图坐标
    vs2019 扩展工具
    服务器内网穿透
    intelliJ 软件项目打开运行
  • 原文地址:https://www.cnblogs.com/verna/p/4427840.html
Copyright © 2011-2022 走看看