TriState Checkbox - wie man die Reihenfolge der Zustände ändert

Ich habe eine CheckBox in meiner Anwendung, die den TriState-Modus verwendet. Das normale Verhalten für diesen Modus scheint zwischen null, falsch und wahr zu wechseln.

Ich möchte dieses Verhalten so ändern, dass es zwischen null, wahr und falsch wechselt.

Wie geht das am besten?

Ich habe versucht, einen Klick-Handler wie diesen hinzuzufügen:

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

}

Dies scheint jedoch das Kontrollkästchen vollständig zu deaktivieren. Ich bin mir ziemlich sicher, dass mir etwas fehlt, das offensichtlich sein sollte.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage