Put the DataSets inside the ViewModel --

More and more adopt this pattern. It is the best way to provide test coverage and portablity of code, imho.

There are a lot of different takes on the finer aspects of MVVM, you should check out fellow member wkempf 's blog http://wekempf.spaces.live.com/default.aspx and sacha barber's too http://sachabarber.net/

Don't forget P&P's MVVM WPF/Silverlight composite framework http://compositewpf.codeplex.com/  (a.k.a. Prism)