You can also use a ToggleButton with EventTriggers to execute the different methods for Checked and Unchecked states.
<ToggleButton x:Name="ToggleButton" Content="Add"
Style="{StaticResource ToggleStyle}"
IsThreeState="False">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Checked">
<ei:CallMethodAction MethodName="Save" TargetObject="{Binding}" />
</i:EventTrigger>
<i:EventTrigger EventName="Unchecked">
<ei:CallMethodAction MethodName="Add" TargetObject="{Binding}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</ToggleButton>
You can also use a style to modify the ToggleButton template and change the text for the checked state. To do this, get a copy of the ToggleButton style and in the Checked VisualState add this to the story board:
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="contentPresenter" Storyboard.TargetProperty="(UIElement.Content)">
<DiscreteObjectKeyFrame KeyTime="0">
<DiscreteObjectKeyFrame.Value>
Save
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
If you'd rather not go down that route then you could add this to your Checked Triggers:
<ei:ChangePropertyAction PropertyName="ButtonText" Value="Save"/>
To use these approaches you will need a reference to the Microsoft.Expression.Interactions and
System.Windows.Interactivity binaries from C:\Program Files (x86)\Microsoft SDKs\Expression\Blend.NETFramework\v4.5\Libraries.