Well, DI has not that much to do with Noesis in general, it's just a pattern to inject dependencies. So the first step would be to decide what DI framework you want to use. There is for instance
StrangeIoC which was primarily written to be used within Unity.
The next step would be to declare all types that should be known and also be injected. You also have to decide what type of injection you want.
The problem with DI is that it won't work when you just call the constructor of a class, such as "new ViewModel()". Instead, depending on the DI framework, there are other ways to create object instances. In the linked WPF article they use a unity container and call Resolve() or TryResolve() to create a new instance of a class. This will also inject the 'marked' dependencies.
That's where you might stumble when you use Noesis and just declare views or viewmodels within XAML, as you have no control over the construction process. Also the 'ViewModels' are relatively closely bound to the 'View' in Noesis.
Hmm, now that I think about it there might be a way to achieve a better separation. I have to check whether I can convince Noesis to work that way. On the other hand I'm happy that I finally got it finally working more or less the way I wanted. There might also be a problem with "OnPostInit()" as there are certain things that shouldn't be put in the constructor.
Anyway, I solved it by just creating all views in code instead. But the goal of my GUI is to be pretty flexible. For a more simple UI that might not be the best approach.