Io non sono sicuro di aver capito pienamente le vostre domande, ma mi permetta di provare. Tutto importa quanto in profondità vuoi andare anche qui. Ci sono molti modi per la pelle questo gatto.
1 - Penso che stai chiedendo come utilizzare la IsCheckedproprietà per influenzare l'aspetto del CheckBox? Il modo per farlo è ri-modello il CheckBoxe utilizzare un trigger nel modello. Qualcosa come questo:
<CheckBox>
<CheckBox.Template>
<ControlTemplate TargetType="CheckBox">
<StackPanel Orientation="Horizontal">
<Image x:Name="_image" Source="Unchecked.jpg"/>
<ContentControl Content="{Binding Content}"/>
</StackPanel>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter TargetName="_image" Property="Source" Value="Checked.jpg"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</CheckBox.Template>
</CheckBox>
Non v'è più da considerare qui, ma che dovrebbe iniziare.
2 - È possibile utilizzare InputBindingsper eseguire un comando quando alcuni input viene ricevuto dal controllo. Così si può definire un comando che controlla o deseleziona l'appropriata CheckBoxin base al parametro passato al comando. Poi si può fare qualcosa di simile a questa:
<CheckBox>
<CheckBox.InputBindings>
<KeyBinding Key="1" Command="{x:Static local:Commands.YourCommand}" CommandParameter="1"/>
</CheckBox.InputBindings>
</CheckBox>
Anche in questo caso, ci sono molti modi per risolvere i vostri problemi qui. Speriamo che questo si dirige nella direzione giusta.