В моем приложении есть CheckBox, использующий режим TriState. Нормальное поведение для этого режима, по-видимому, циклично: ноль, ложь, истина.
Я бы хотел изменить это поведение, чтобы оно переключалось между нулем, истиной, ложью.
Какой лучший способ сделать это?
Я пытался добавить обработчик кликов, подобный этому:
void cb_Click(object sender, RoutedEventArgs e)
{
if (((CheckBox)e.Source).IsChecked.HasValue == false)
{
((CheckBox)e.Source).IsChecked = true;
return;
}
if (((CheckBox)e.Source).IsChecked == true)
{
((CheckBox)e.Source).IsChecked = false;
return;
}
if (((CheckBox)e.Source).IsChecked == false)
{
((CheckBox)e.Source).IsChecked = null;
return;
}
}
Но, похоже, этот флажок полностью отключен. Я почти уверен, что упускаю что-то, что должно быть очевидным.