Я пытался создать приложение Xamarin Forms с использованием Prism , которое работает на на телефонах и планшетах .
Для планшетамакет Я пытаюсь создать что-то похожее на черновик изображения ниже, все еще повторное использование Pages / ViewModels с телефона .
![structure of pages](https://i.stack.imgur.com/5Iw2y.png)
Что я пробовал:
Использование TabbedPage, где каждая вкладка содержит MasterDetailPage.У этого решения есть две проблемы :
- Xamarin рекомендует использовать только MasterDetailPage в качестве корневой страницы
- Мне удалось реализовать это «решение», но, вероятно, по причиневыше xaml страниц внутри MasterDetailPage неправильно привязываются к их ViewModels.
Использование TabbedPage, в котором каждая вкладка содержит страницу, разделенную на две частиу которого есть ContentView :
- Это решение работает, но я не могу повторно использовать страницу из версии для телефона непосредственно в макете.
- Я пытался использовать Prism Частичные представления для реализации этого решения, но я думаю, что родительская страница должна содержать ViewModel, которая будет использоваться ContentView, которая не будет работать в этом сценарии (потому что она будет содержать две модели представления).
Не совместное использование Pages / ContentViews / ViewModels между телефоном и планшетом :
- Это решение работает,потому что я могу реализовать MasterDetailPage с ContentViews, но нет никакого кода, разделяемого для страниц / представлений, которые в основном делают то же самое, поэтому он действительно не идеален.
Есть идеи о том, как реализовать этот макет, сохраняя при этом общий доступ к представлениям и моделям просмотра для реализаций телефона и планшета?
Примечание. Это приложение для Android, iOS и UWP, использующее Xamarin Forms 3.4 и Prism 7.1