Если это Freezable, вы можете заморозить окно. Это должно позволить вам получить к нему доступ.
Диспетчерский подход, вероятно, является хорошим вариантом, но я всегда чувствую, что это нарушение (кажется, что ViewModel слишком тесно взаимодействует с пользовательским интерфейсом), но, вероятно, это личное предпочтение.
Однако я подвергаю сомнению ваш подход здесь. Есть ли веская причина, по которой одна ViewModel пытается сослаться на другую? Я бы подумал переосмыслить этот подход ... Обычно, когда люди делают это, они получают доступ к ViewModel, когда на самом деле им следует прикасаться к модели.