If it's Freezable, you might be able to freeze your window. This should allow you to access it.
The dispatcher approach is probably a good option, but I always feel like this is a violation (feels like the ViewModel dealing with the UI too closely), but it's probably personal preference.
I question your approach here, however. Is there a good reason one ViewModel is trying to reference another? I'd consider rethinking this approach... Generally when people do this they are accessing ViewModel when really they should be touching the Model instead.