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