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;
            }
  • 相关阅读:
    bzoj 3438 小M的作物
    洛谷 1126 机器人搬重物
    hdu 4055 Number String
    顺序对齐
    codevs 1300 文件排版
    NOIP 2015 提高组 Day2
    poj 2484 A Funny Game
    51nod 1548 欧姆诺姆和糖果 (制约关系优化枚举)
    hdu 1907 John (anti—Nim)
    hdu 2516 取石子游戏 (斐波那契博弈)
  • 原文地址:https://www.cnblogs.com/verna/p/4427840.html
Copyright © 2011-2022 走看看