WPF Toggle Switch's and Triggers
<p>I have 2 ToggleSwitch's and I only want one of them to be enabled at a time. So if one is on the other is off and visa versa. I though I could achieve this using triggers but I am having a bit of trouble.</p>

<p>The logic seems to be working as desired, however only the first switch you change checked state will work e.g. If I first toggle swich1, switch2 will toggle the opposite state. However if I toggle switch2, it will not toggle switch1. If I start the application and toggle switch2 first, switch1 will toggle as expected.</p>

<p>Heres the xaml:</p>

<pre><code>    &lt;controls:ToggleSwitch Name="Toggle1"&gt;
                    &lt;controls:ToggleSwitch.Style&gt;                           
                        &lt;Style TargetType="controls:ToggleSwitch"&gt;
                            &lt;Setter Property="FontSize" Value="22"/&gt;
                            &lt;Setter Property="FontFamily" Value="Segoe UI"/&gt;
                            &lt;Setter Property="Height" Value="30"/&gt;
                            &lt;Setter Property="Width" Value="Auto"/&gt;
                            &lt;Setter Property="VerticalAlignment" Value="Center"/&gt;
                            &lt;Setter Property="RenderTransform"&gt;
                                &lt;Setter.Value &gt;
                                    &lt;ScaleTransform ScaleX="0.7" ScaleY="0.7" CenterY="5" /&gt;
                                &lt;/Setter.Value&gt;
                            &lt;/Setter&gt;

                            &lt;!-- Here is the 'normal' default content --&gt;
                            &lt;Setter Property="IsChecked" Value="{Binding Path=CurrentGroup.IsDistributionGroup}"/&gt;
                            &lt;Style.Triggers&gt;
                                &lt;!-- Here is how we bind to another control's property --&gt;
                                &lt;DataTrigger Binding="{Binding IsChecked, ElementName=Toggle2}" Value="True"&gt;
                                    &lt;!-- Here is the 'override' content --&gt;
                                    &lt;Setter Property="IsChecked" Value="False"/&gt;
                                &lt;/DataTrigger&gt;
                                &lt;DataTrigger Binding="{Binding IsChecked, ElementName=Toggle2}" Value="False"&gt;
                                     &lt;!--Here is the 'override' content--&gt; 
                                    &lt;Setter Property="IsChecked" Value="True"/&gt;
                                &lt;/DataTrigger&gt;
                            &lt;/Style.Triggers&gt;
                        &lt;/Style&gt;
                    &lt;/controls:ToggleSwitch.Style&gt;
                &lt;/controls:ToggleSwitch&gt;


    &lt;controls:ToggleSwitch Name="Toggle2"&gt;
                    &lt;controls:ToggleSwitch.Style&gt;
                        &lt;Style TargetType="controls:ToggleSwitch"&gt;
                            &lt;Setter Property="FontSize" Value="22"/&gt;
                            &lt;Setter Property="FontFamily" Value="Segoe UI"/&gt;
                            &lt;Setter Property="Height" Value="30"/&gt;
                            &lt;Setter Property="Width" Value="Auto"/&gt;
                            &lt;Setter Property="VerticalAlignment" Value="Center"/&gt;
                            &lt;Setter Property="RenderTransform"&gt;
                                &lt;Setter.Value &gt;
                                    &lt;ScaleTransform ScaleX="0.7" ScaleY="0.7" CenterY="5" /&gt;
                                &lt;/Setter.Value&gt;
                            &lt;/Setter&gt;

                            &lt;!-- Here is the 'normal' default content --&gt;
                            &lt;Setter Property="IsChecked" Value="{Binding Path=CurrentGroup.IsGroupAgents}"/&gt;
                            &lt;Style.Triggers&gt;
                                &lt;!-- Here is how we bind to another control's property --&gt;
                                &lt;DataTrigger Binding="{Binding IsChecked, ElementName=Toggle1}" Value="True"&gt;
                                    &lt;!-- Here is the 'override' content --&gt;
                                    &lt;Setter Property="IsChecked" Value="False"/&gt;
                                &lt;/DataTrigger&gt;
                                &lt;DataTrigger Binding="{Binding IsChecked, ElementName=Toggle1}" Value="False"&gt;
                                    &lt;!-- Here is the 'override' content --&gt;
                                    &lt;Setter Property="IsChecked" Value="True"/&gt;
                                &lt;/DataTrigger&gt;
                            &lt;/Style.Triggers&gt;
                        &lt;/Style&gt;
                    &lt;/controls:ToggleSwitch.Style&gt;
                &lt;/controls:ToggleSwitch&gt;
</code></pre>