Kontrollkästchen haben eine bestimmte Funktionalität (angekreuzt, nicht angekreuzt und optional unbestimmt).
Ausgehend von Ihrem Kommentar würde ich denken, dass es am einfachsten wäre, es einfach als Schaltfläche zu machen. Ich habe jetzt keine Zeit, um ein tatsächliches Beispiel zu testen, aber hier einige Pseudocode, um Sie loszulegen:
XAML
<Button Command="{Binding ToggleDecisionState}">
<Button.Content>
<Image Source="{Binding CurrentDecisionIcon}" />
<Button.Content>
</Button>
ViewModel (ohne Berücksichtigung der MVVM-Implementierungsdetails)
enum Decisions
{
Agree,
Disagree,
Maybe,
DoNotKnow
};
public Decisions CurrentDecision
{
get {}
set {}
}
public RelayCommand ToggleDecisionStateCommand
{
// In here, call code to execute toggle
if (mCurrentDecision == Decisions.DoNotKnow)
CurrentDecision = Decisions.Agree;
else
CurrentDecision += 1;
}
public ImageSource CurrentDecisionIcon
{
get
{
ImageSource img = [some default image];
switch (mCurrentDecision)
{
case Decisions.Agree:
img = [path to Agree icon];
break;
// Other cases here
}
return img;
}
}