Jeg er ikke sikker på om jeg forstår spørsmålene dine, men la meg prøve. Det alle saker hvor dypt du ønsker å gå her, også. Det er mange måter å flå denne katten.
1 - Jeg tror du spør hvordan du bruker IsCheckedeiendommen til å påvirke utseendet på CheckBox? Måten å gjøre dette på er å re-templat CheckBoxog bruke en trigger i malen. Noe sånt som dette:
<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>
Det er mer å vurdere her, men det bør komme i gang.
2 - Du kan bruke InputBindingstil å utføre en kommando når noen innspill mottas av kontroll. Så du kan definere en kommando som sjekker eller unchecks riktig CheckBoxbasert på parameteren gått til kommandoen. Deretter kan du gjøre noe som dette:
<CheckBox>
<CheckBox.InputBindings>
<KeyBinding Key="1" Command="{x:Static local:Commands.YourCommand}" CommandParameter="1"/>
</CheckBox.InputBindings>
</CheckBox>
Igjen, det er mange måter å løse dine problemer her. Forhåpentligvis kan dette styrer deg i riktig retning.