У меня есть 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;
}
}
Но это, кажется, полностью отключает флажок. Я почти уверен, что мне не хватает чего-то, что должно быть очевидно.