Как я понимаю, вы хотите повторно использовать ваши ViewModels из приложения WPF в приложении Xamarin - это выполнимо, но не просто.
То, как вы делали просмотр переключения в WPF, работает и работает нормально, но это не "как это делается", когда вы хотите перейти на мультиплатформу.
Первое, что вы должны сделать, это сделатьУбедитесь, что ViewModels не зависят от платформы - поместите их все в PCL.Правильное приложение MVVM должно быть в состоянии запускать и выполнять какие-либо действия даже без каких-либо подключенных представлений - это включает переключение активной ViewModel.
Это достигается с помощью службы навигации / маршрутизации - в большинстве сред MVVM это есть.По сути, это то, что вы просите показать некоторую ViewModel - если вы хотите многому научиться, напишите свое собственное, в противном случае используйте существующее, не стоит тратить время на его придумывание еще раз.То, как отображается виртуальная машина, зависит от того, на какой платформе запущена программа - однако с точки зрения виртуальной машины не должно быть никаких отличий.Тем не менее, вам понадобятся отдельные представления (UserControls в WPF, страницы в формах) для каждой платформы.
Одна из лучших на мой взгляд сред MVVM - ReactiveUI , написанная с учетом Xamarin,поэтому он быстрый, имеет малое время запуска и т. д. Он также работает с большинством платформ: WPF, WinForms, Windows Universal Apps, даже Avalonia и некоторыми другими.RxUI даже поддерживает активацию представлений из коробки, что более чем удобно.Кроме того, как только вы начнете реагировать, пути назад уже не будет:)
В этой статье изложены основы концепции маршрутизации.
Удачной копки оттуда:)