2011-01-20 3 views
0

У меня есть специальная встроенная поле со списком. Я взял его от http://www.codeproject.com/KB/combobox/extending_combobox.aspxФлажок с настраиваемой сборной коробкой

Выпадающее состоит из 5 элементов, а именно A, B, C, D, All.

Что я хочу сделать, когда пользователь проверяет все, снимите отметки A, B, C, D. , и когда пользователь выбирает, любой из A, B, C, D снимите флажок Все.

Я не могу понять, какая логика я должен поставить в

Я попытался это:.

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; 
    } 
} 

Это не работает. Я использую этот код под проверенным событием. Пожалуйста, помогите

+0

Какое ужасное, ужасное, совершенно нестандартное и невозможное управление. Что-то не так с регулярными флажками или, может быть, с ListView'ом с галочками? –

+0

В моем приложении не так много места. Пользовательский спрос :( – reggie

ответ

0

Упрощенный вариант лучше.

  • Выяснить, что пользователь просто (проверил "Все" или проверил что-то еще)
  • Если пользователь проверил "Все"
    • Для каждого другого элемента, снимите его
  • If пользователь проверил что-то еще
    • Снять отметку "Все"

Игнорировать, когда пользователи снижают отметку с позиции.

Не пытайтесь объединить их в один оператор цикла, он просто запутывается таким образом.

Смежные вопросы