Подтвердить что ты не робот

Использование Monocross на Windows Phone 7 с функцией Panorama и/или Pivot

Мне нравится Monocross, но я немного потерял для Windows Phone 7, когда хочу использовать Panorama и/или Pivot контроль. Единственное представление - просмотр страницы. Так что переходить с одной страницы на другую отлично! Но теперь я хочу свод или панораму. В принципе, я мог бы создать новый контроллер для этого представления, но получить "страницы" внутри элементов управления. Навигация действительно перемещается к нему, но не внутри Pivot/Panorama.

Для образцов Monotouch и MonoDroid были подготовлены, как это сделать (в основном был создан новый диспетчер представлений). Но WP7 остался.

Кто-нибудь?

4b9b3361

Ответ 1

Я также занимаюсь кросс-платформенной разработкой с использованием моно и, как и вы, и многие другие сталкиваются с проблемой того, что делать с пользовательским интерфейсом и другой базовой аппаратной интеграцией.

Я решил, что не хочу быть во власти еще одной сторонней структуры (моно достаточно) и исследовал решение, которое я мог бы построить и поддерживать. Новый шаблон MVVM вместе с Expression Blend действительно классный, но вскоре вы оказались застрявшим, когда дело доходит до кросс-платформенной разработки. MVC MVP казалось, не соответствовало мне. Наконец, он остановился на шаблоне PM и расширил его до PMH, где H для аппаратного обеспечения. Для достижения того, что мне было нужно, я должен был абстрагировать основные виджеты (кнопки, панели, текстовые поля) на базовый уровень платформы для каждого типа устройства. Мой уровень платформы составляет около 1% от моей базы кода и позволяет мне скрыть приложение для каждого устройства, на которое я нацелен.

Для моего решения WP7 я использую почти любой HTML только около 25 строк, что достаточно для инициализации приложения и главной страницы. Остальная часть пользовательского интерфейса объединена программно так же, как и в WinForms. В WP7 я все еще использую элемент управления Pivot, поскольку он действительно хорош groovy, и я моделирую аналогичный элемент управления для использования на Android/iPhone. Хотя он не будет на 100% одинаковым, он будет очень похожим и по-прежнему будет использовать один и тот же движок навигации в моем основном коде.

Я еще не доволен своим развитием, но до сих пор я очень доволен своим успехом. Я разрабатываю пользовательский интерфейс для приложения Windows в течение примерно 20 лет, и я никогда не использую инструменты построения интерфейса, поскольку я считаю, что они никогда не дают мне то, что я хочу, и действительно тратят свое время (Blend довольно круто, хотя), а также создают потрясающий код bloat особенно в Blend.

Ответ 2

Я не могу полностью помочь с монокроссами - я однажды сделал выборку для дроида - https://github.com/slodge/monocross-tab-activity-view - но я так и не завершил wp7 часть этого.

Для mvvmcross... который связан... есть несколько образцов - один в учебнике (немного взломанный!) и один в приложении для конференции - предпочтительный образец.

Основным методом, который я выбрал, было использование подмоделей для каждой "вкладки" панорамы - см., как для DataContext задается привязка данных к каждому элементу в https://github.com/slodge/MvvmCross/blob/master/Sample%20-%20CirriousConference/Cirrious.Conference.UI.WP7/Views/HomeView.xaml

Обратите внимание, что в более крупном приложении могут возникнуть важные проблемы с памятью, которые следует учитывать при этом - особенно при использовании элемента управления, который не загружает все страницы в память одновременно (так что вам действительно не нужно загружать все viewmodels).

Некоторые блоги в приложении conf: http://slodge.blogspot.co.uk/2012/03/update-on-mvvmcross-sqlbits-conference.html

И последний источник битов sql: https://github.com/slodge/MvvmCross/tree/master/Sample%20-%20CirriousConference

tabs and pivot example