Je ne suis pas sûr que je comprends parfaitement vos questions, mais je vais essayer. Tout importe quelle profondeur vous voulez aller ici aussi. Il y a beaucoup de façons de la peau ce chat.
1 - Je pense que vous vous demandez comment utiliser la IsCheckedpropriété d'influencer l'apparence de la CheckBox? La façon de le faire est de nouveau modèle le CheckBoxet utilisez un déclencheur dans le modèle. Quelque chose comme ça:
<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>
Il y a plus à considérer ici, mais cela devrait vous aider à démarrer.
2 - Vous pouvez utiliser InputBindingspour exécuter une commande lorsque certains entrée est reçu par le contrôle. Ainsi, vous pouvez définir une commande qui vérifie ou le désélectionne approprié en CheckBoxfonction du paramètre passé à la commande. Ensuite , vous pouvez faire quelque chose comme ceci:
<CheckBox>
<CheckBox.InputBindings>
<KeyBinding Key="1" Command="{x:Static local:Commands.YourCommand}" CommandParameter="1"/>
</CheckBox.InputBindings>
</CheckBox>
Encore une fois, il y a plusieurs façons de résoudre vos problèmes ici. Espérons que cela vous dirige dans la bonne direction.