定制的组合框复选框

时间:2011-01-20 15:34:04

标签: c# linq combobox checkbox

我有一个自定义构建的组合框复选框。我是从http://www.codeproject.com/KB/combobox/extending_combobox.aspx

取的

下拉列表由5个项目组成,即A,B,C,D,All。

我想做的是当用户选中All时,取消选中A,B,C,D。 当用户选择时,A,B,C,D中的任何一个取消选中All。

我无法弄清楚我应该放入哪种逻辑。

我试过这个:

int index = ComboCheck.FindString(@"All");

foreach (var x in tComboCheck.CheckBoxItems.Where(y => y.Checked))
 {
  if(x.Text.StartsWith("A"))
    {
     ComboCheck.CheckBoxItems[index].Checked = false;
    }
  if(x.Text == @"All")
    {
     x.Checked = true;
    }
 }

它不起作用。我在Checked Changed事件下使用此代码。请帮忙

1 个答案:

答案 0 :(得分:0)

越简单越好。

  • 弄清楚用户刚刚做了什么(选中“全部”或检查其他内容)
  • 如果用户选中“全部”
    • 对于其他项目,取消选中
  • 如果用户检查了其他内容
    • 取消选中“全部”

当用户取消选中某个项目时忽略。

不要试图把它们归结为一个循环语句,这样就会让人感到困惑。