You need a RelayCommand
[
^] implementation of the ICommand.
You can then initialize the ICommand like the following:
this.SaveAllCommand = new RelayCommand(SaveAllAction, () => );
Whenever something changes you have to update the button:
this.SaveAllCommand.RefreshCanExecute();
Don't forget to bind the command to the button
<Button Content="Save All" Command="{Binding SaveAllCommand}" />