【WPF】一组CheckBox的全选/全不选功能

需求:给一组CheckBox做一个全选/全不选的按钮。

思路:CheckBox不像RadioButton那样拥有GroupName属性来分组,于是我想的方法是将这组CheckBox放到一个布局容器中,给这个布局容器命名,后台代码通过名字找到该布局控件,再获取它的所有子类,即可操作这一组CheckBox。

前台代码:

<WrapPanel Name="materialTabItem" Orientation="Horizontal">
    <CheckBox Name="selectAllBtn" Click="selectAll_OnClick" Content="全选/全不选" Margin="5"/>
    <CheckBox Content="实木地板" Margin="5"/>
    <CheckBox Content="硅藻泥" Margin="5"/>
    <CheckBox Content="涂料" Margin="5"/>
</WrapPanel>

对应的后台代码:

private void selectAll_OnClick(object sender, RoutedEventArgs e)
{
    bool flag = selectAllBtn.IsChecked == true ? true : false;
    for (int i = 0; i < materialTabItem.Children.Count; i++)
    {
        var item = materialTabItem.Children[i];
        if (item is CheckBox)
        {
            CheckBox checkBoxItem = (CheckBox)item;
            checkBoxItem.IsChecked = flag;
        }
    }
}

运行效果如下:

这里写图片描述

posted @ 2016-11-30 08:57  霍莉雪特  阅读(3096)  评论(0编辑  收藏  举报