Nie jestem pewien, że w pełni zrozumieć pytania, ale pozwól mi spróbować. To wszystko ma znaczenie, jak głęboko chcesz iść tutaj, też. Istnieje wiele sposobów na skórę ten kot.
1 - Myślę, że pytasz, jak korzystać z IsCheckedwłaściwości wpływania na wygląd CheckBox? Sposobem na to jest ponownie szablonie CheckBoxi użyć wyzwalacza w szablonie. Coś takiego:
<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>
Jest więcej do rozważenia tutaj, ale to powinno Ci zacząć.
2 - można użyć InputBindingsdo wykonania polecenia, gdy niektóre wejściowe są odbierane przez kontrolę. Tak można zdefiniować polecenia, które sprawdza lub usuwa zaznaczenie pola wyboru w³aœciwe CheckBoxw oparciu o parametr przekazany do polecenia. Następnie można zrobić coś takiego:
<CheckBox>
<CheckBox.InputBindings>
<KeyBinding Key="1" Command="{x:Static local:Commands.YourCommand}" CommandParameter="1"/>
</CheckBox.InputBindings>
</CheckBox>
Ponownie, istnieje wiele sposobów, aby rozwiązać swoje problemy tutaj. Mam nadzieję, że kieruje się w dobrym kierunku.