 <p>Fixed it by parameterising my command, binding to a new property on my viewmodel and moving Command into the style:</p> <pre><code> &lt;ToggleButton Margin="0,3" Grid.Row="3" Grid.ColumnSpan="2" IsThreeState="False" IsChecked="{Binding DataContext.IsSelected, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"&gt; &lt;ToggleButton.Style&gt; &lt;Style TargetType="{x:Type ToggleButton}"&gt; &lt;Setter Property="Content" Value="Select All"/&gt; &lt;Setter Property="Command" Value="{Binding DataContext.SelectAllCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"/&gt; &lt;Style.Triggers&gt; &lt;Trigger Property="IsChecked" Value="True"&gt; &lt;Setter Property="Content" Value="Select None"/&gt; &lt;/Trigger&gt; &lt;/Style.Triggers&gt; &lt;/Style&gt; &lt;/ToggleButton.Style&gt; &lt;/ToggleButton&gt; </code></pre> <p>Don't you just love WPF sometimes!</p>