Как правильно настроить код приложения MWvmCross 6.0 Xamarin.Forms UWP? - PullRequest
0 голосов
/ 11 июня 2018

У меня есть UWP приложение, унаследованное от базового класса, которое наследуется от MvxApplication<Setup, CoreApp>:

public sealed partial class App : WindowsApplication
{
    public App()
    {
        InitializeComponent();
    }
}

public class WindowsApplication : MvxApplication<Setup, CoreApp>
{
}

public class Setup : MvxWindowsSetup<CoreApp>
{
    public override IEnumerable<Assembly> GetViewAssemblies()
    {
        // need to do this as otherwise I receive the message that corresponding view to view model is not found
        var assemblies = base.GetViewAssemblies().ToList();
        assemblies.Add(typeof(Forms.App).Assembly);
        return assemblies;
    }
}

Однако при его запуске появляется следующее сообщение об ошибке:

Тип MvxContentPagePresentationAttribute не настроен в словаре презентатора

Как я понимаю, все, что является неправильным способом запуска приложения Xamarin.Forms MvvmCross, так как UWP App и Setup должны быть унаследованы отчто-то вроде MvxFormsApplication и MvxFormsWindowsSetup<CoreApp, Forms.App> соответственно (для правильной инициализации приложения Xamarin.Forms).

Но:

  • MvxFormsApplication не является универсальным и не предоставляет возможностипередачи общей формы Forms.
  • , даже если я наследую приложение от MvxFormsApplication и использую this.RegisterSetupType<MvxFormsWindowsSetupInheritor>();, компилятор Visual Studio никогда не позволяет мне скомпилировать проект из-за какого-то странного сообщения об ошибке (что-то вроде * 1026)* Имя «WindowsApplication» не существует в пространстве имен «…» ) (это может быть некоторой проблемой Visual Studio, но у меня есть версия VS 15.7, которая ожидаеткод для работы (опять же, MvvmCross заявляет, что они поддерживают UWP и XF)).

Итак, насколько я понимаю, если есть приложение Xamarin.Forms, должен быть также какой-то способ передачи фактически XamarinКласс .Forms App для инициализации класса приложения UWP.

MvvmCross, опять же, обозначает поддержку UWP и Xamarin.Forms, но Я не вижу четкого примера способа установки такого типаПриложение .

Документация MvvmCross как всегда довольно "скромная".Есть несколько инструкций по настройке приложения MvvmCross UWP, а также по настройке MvvmCross XF iOS / Android, но единственное слово о MvvmCross XF UWP:

Теперь вы можете свободно размещать свои пользовательские средства визуализации вдругая сборка.Все, что вам нужно сделать, чтобы это заработало, это добавить свою сборку в коллекцию Setup.ViewAssemblies.(в официальном документе на веб-сайте) (что все еще звучит странно, поскольку версии для iOS и Android не нуждаются в дополнительном коде, что заставляет меня думать, что такая (текущая) документация не очень актуальна)

и

  • UWP, WPF
  • Расширение приложения из MvxApplication.(Приложение: MvxApplication {})

из файла MvvmCross.Forms package readme.txt, когда все остальные платформы снова ожидают наследования для классов приложений от классов на основе MvxForms *.

MvvmCross, ребята, есть мысли по этому поводу?

1 Ответ

0 голосов
/ 13 июня 2018

Когда я настраиваю новый проект Xamarin.Forms, я всегда следую примеру Playground в MvvmCross GitHub , так как этот пример развивается вместе с API и всегда актуален, как иявляется частью решения MvvmCross, поэтому любые коммиты должны сохранять его функциональность.Поэтому, если вы хотите посмотреть, как все должно выглядеть в минимальном проекте UWP + Xamarin.Forms, посмотрите проекты Playground.Forms.UI и Playground.Forms.Uwp в связанной папке.

...