Window Factory and Manager using MVVM pattern
Disclaimer: I haven't really used MVVM though am familiar with the pattern.



WindowFactory

The layers in MVVM, from upper to lower in terms of direction of dependencies (dependencies flow down), are View, ViewModel, and Model. Therefore it seems wrong to me that the ViewModel contains a View (by way of containing a ViewAdapter).

Another issue is that CreatePhoneWindow() actually displays the window. I would expect a factory to return a window, which the client can then display (or not) as and when desired. This isn't to say it is wrong, but it feels wrong (to me).

WindowManager

if (_windows.Contains(window) == false) is unnatural; use if (!_windows.Contains(window)) instead. Same for the comparison against true in the other method.

if (_windows.Count == 0) { return true; } 
else { return false; }


This also can be simplified to return _windows.Count == 0;. (But is it correct that when the _windows collection is empty it means windows are open?)

Also why are you using an ObservableCollection? It appears you're not binding to it, being as it's a private field, so why not just use a standard List&lt;Window&gt; instead?

ViewAdapter


  Its purpose is to handle View close commands, that are coming from
  inside the View's ViewModel...


I don't understand why this class exists. If a ViewModel wants to say "time to close", it can raise an event. The View (Window) - which should have a dependency on the ViewModel - can subscribe to this event, and close itself. No need for an extra class to do its own closing. If you still want to have a WindowManager, then the WindowManager can subscribe to the Window's OnClose event and remove that object from its collection.