public void MoveBack()
{
if(!CanMoveBack)
{
throw new InvalidOperationException("History.MoveBack() cannot execute because CanMoveBack returned false (the current state is the last state in the undo buffer.");
}
CurrentState.PreviousAction.UnExecute();
CurrentState = CurrentState.PreviousNode;
Length--;
RaiseUndoBufferChanged();
}