在WPF,C#应用程序中,我有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;
}
}
在此之后,如果取消选中复选框,我也无法正确选中该复选框。
答案 0 :(得分:1)
这很容易。在第二轮和第二轮的事件处理程序中第四个复选框,检查是否所有选中,并相应地设置第一个复选框的检查状态。
答案 1 :(得分:0)
_view对象是一个ViewModel对象(不是控件),对吗? 如果是这样,那么您应该更好地订阅这些属性的更改并相应地在处理程序中设置SelectAll属性。当任一属性更改时,您的SelectAll属性将保持最新。
如果_view是一个View(一个控件),那么你可能在这里写了一个拼写错误('。IsChecked'到处都丢失了?)然后在代码中检查/取消选中是一个非常糟糕的做法。您应该将复选框绑定到某些属性。