【问题标题】:How to uncheck Select All checkbox if any one of checkbox is unchecked in WPF, C#?如果在 WPF、C# 中未选中任何一个复选框,如何取消选中全选复选框?
【发布时间】:2009-09-15 14:00:24
【问题描述】:

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

  1. 全选

  2. 团队

  3. 个人

  4. 小组。

像往常一样,如果选择选项 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;


        }
}

在此之后,我无法正确取消选中一个复选框,也应该取消选中全选复选框。

【问题讨论】:

    标签: c# wpf checkbox


    【解决方案1】:

    这很容易。在第 2 3 和第 4 个复选框的事件处理程序中,检查它们是否都被选中,并相应地设置第一个的检查状态。

    【讨论】:

    • ya.. 目前它只有 4 个 chkbox,但如果它增加.. 维护起来相当复杂.. 对此还有其他想法吗?谢谢拉姆
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-23
      • 2018-02-06
      • 2013-12-06
      相关资源
      最近更新 更多