How to use chain rule to prove $f$ homogeneous of degree $c$ iff $D_x f(x) = cf(x)$?

How can we use the chain rule to prove that if $f:\mathbb{R}^n\rightarrow\mathbb{R}$ and $c\in\mathbb{R}$ are such that $f(\lambda x) = \lambda^cf(x)\:\:\forall \lambda>0, x\in\mathbb{R}^n$, then $D_xf(x)=cf(x)\:\forall x\in\mathbb{R}^n$, and vice versa? (I'm using $D_xf$ to denote the derivative of $f$ at $x$, viewed as a linear map $\mathbb{R}^n\rightarrow\mathbb{R}$.)

I've found a proof not using the chain rule:

if $f$ homogeneous of degree $c$, then $f((1+\epsilon x)-f(x)=[c\epsilon+o(\epsilon)]f(x)\:$ as $\epsilon\rightarrow0$, so $D_xf(\epsilon x)=cf(x)\epsilon$. Conversely, if $D_xf(x)=cf(x)$, then the function $g_\lambda$ sending $x$ to $f(\lambda x)-\lambda^cf(x)$ is differentiable with derivative zero for all $\lambda$, and therefore identically zero.

But the past exam question asks for this to be shown "by means of the chain rule or otherwise". Would either direction of implication be quicker to prove using the chain rule, and if so, how?

-
There is something strange. First of all: you write $c \in \mathbb{R}^n$, and then $\lambda^c$. What is this last operation? –  Siminore May 3 '12 at 10:11
@Siminore: Most likely $c\in\Bbb R^n$ is a typo for $c\in \Bbb R$; $f((1+\epsilon x)$ is certainly a typo for $f((1+\epsilon)x)$. –  Brian M. Scott May 3 '12 at 11:15
–  lhf May 3 '12 at 11:29
@Siminore Thanks for this. Typo. Should be $c\in\mathbb{R}$. I've now corrected this. –  Harry Macpherson May 3 '12 at 11:56

If $f:\mathbb{R}^n\to\mathbb{R}$ is differentiable and there exists $c\in\mathbb{R}$ such that $$\tag{\star} f(\lambda x) = \lambda^c f(x) \quad (\forall\lambda>0, \forall x\in\mathbb{R}^n),$$ then $(D_xf)(x)=cf(x)$ for all $x\in\mathbb{R}^n$ (and vice versa).
Let us prove one of the implications using the chain rule. Take equation $(\star)$ and differentiate it with respect to $\lambda$. This gives $$(D_{\lambda x}f)(x) = c\lambda^{c-1} f(x) .$$ Now put $\lambda=1$.