TriState Checkbox - como alterar a ordem dos estados
Eu tenho um CheckBox no meu aplicativo que está usando o modo TriState. O comportamento normal desse modo parece ser o ciclo entre null, false, true.
Eu gostaria de mudar este comportamento para que ele ciclos entre null, true, false.
Qual é a melhor forma de fazer isso?
Eu tentei adicionar um manipulador de cliques semelhante a este:
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;
}
}
Mas isso parece desabilitar totalmente a caixa de seleção. Tenho certeza que estou sentindo falta de algo que deveria ser óbvio.