如果在WPF,C#中未选中任何一个复选框,如何取消选中全选复选框?

时间:2009-09-15 14:00:24

标签: c# wpf checkbox

在WPF,C#应用程序中,我有4个复选框,

  1. 全选

  2. 团队

  3. 个人

  4. 工作小组。

  5. 像往常一样,如果选择选项1,它会选中所有复选框,当取消选中时,它会取消全部选中。这对我来说很好..

    但是当我点击全选(全部将被选中)并且如果我取消选中其他3个时,那么selectall应该是未选中的。

     public void AllChartsSelected()
        {
            if (_view.SelectAllChartsCheckBox)
            {
                boolSelectAll = true;
    
                _view.TeamCheckBox = true;
                _view.PersonalCheckBox = true;
                _view.SubTeamCheckBox = true;
    
            }
            else
            {
        boolSelectAll = false;
                _view.TeamCheckBox = false;
                _view.PersonalCheckBox = false;
                _view.SubTeamCheckBox = false;
    
    
            }
    }
    

    在此之后,如果取消选中复选框,我也无法正确选中该复选框。

2 个答案:

答案 0 :(得分:1)

这很容易。在第二轮和第二轮的事件处理程序中第四个复选框,检查是否所有选中,并相应地设置第一个复选框的检查状态。

答案 1 :(得分:0)

_view对象是一个ViewModel对象(不是控件),对吗? 如果是这样,那么您应该更好地订阅这些属性的更改并相应地在处理程序中设置SelectAll属性。当任一属性更改时,您的SelectAll属性将保持最新。

如果_view是一个View(一个控件),那么你可能在这里写了一个拼写错误('。IsChecked'到处都丢失了?)然后在代码中检查/取消选中是一个非常糟糕的做法。您应该将复选框绑定到某些属性。