2016-05-19 3 views
1

Я пытаюсь создать версию UWP приложения для образца TipCalc здесь: https://github.com/MvvmCross/MvvmCross-Samples/tree/master/TipCalcMvvmCross с Template10

Там уже есть UWP версия в образце, который работает отлично. Однако я пытаюсь использовать Template10 (https://github.com/Windows-XAML/Template10), и у меня возникают проблемы с тем, чтобы обе библиотеки работали вместе.

MvvmCross хочет, чтобы я модифицировал метод OnLaunched, который имеет ссылку на корневой кадр. Тем не менее, шаблон 10 вместо абстрагирует этот метод разоблачения OnStartAsync, который не имеет такую ​​ссылки ...

Существует переопределение в шаблоне 10 для CreateRootFrame, который, кажется, как правильное место, чтобы инициализировать mvvmcross приложения, но это Безразлично Кажется, что работает так, как я ожидал ...

Несмотря на то, что запущенное приложение переходит на соответствующую страницу и также появляется для инициализации модели представления (точка останова в методе запуска в связанной виртуальной машине становится удачной), сама страница пуста.

сравнения Визуальное дерево обоих приложений, показывает, что в то время как существующие UWP приложение из образца имеет кадр:

Visual Tree of working app

мой Template10 App является выгрузку Modal Dialog:

enter image description here

Я разработал оригинальный проект образца и добавил шаблон 10, если вы хотите попробовать его: https://github.com/selaromdotnet/MvvmCross-Samples

Кто-нибудь еще смог интегрировать MvvmCross с шаблоном 10? знаете ли вы, что я делаю неправильно, и какие-либо рекомендации по наилучшим методам использования обеих этих библиотек?

+0

Я также попытался перенести метод start.Start() в OnStartAsync, но когда я это сделал, я получаю эту ошибку: Ошибка преобразования значения «Тип» для ввода «Template10.Services.SerializationService.JsonSerializationService + Container».Быстрый поиск предполагает, что это ошибка, которая была исправлена, но обновлена ​​до самой последней версии предварительного просмотра шаблона 10, и ничего не получилось, и я получаю тот же результат – SelAromDotNet

+0

на самом деле я был неправ, я не получаю такой же результат при обновлении до последнего Template10 (предварительный просмотр), но вместо этого CreateRootElement вообще не вызывается и на самом деле устарел, поэтому мое приложение никогда не инициализируется, и я получаю ошибку нулевой ссылки. так что я определенно проиграл здесь, был бы признателен за любую проницательность! – SelAromDotNet

ответ

1

хмм получается, что ModalDialog ожидаемое поведение для Template10, в соответствии с текущими Docs здесь: https://github.com/Windows-XAML/Template10/wiki/Docs-|-Bootstrapper

Я не достаточно хорошо знаком с Template10 сказать, почему это так, но это также говорят, что вы можете изменить это переопределение OnInitializeAsync, который я сделал, восстанавливая первоначальный кадр таким же образом, регулярный UWP проект делает:

public override async Task OnInitializeAsync(IActivatedEventArgs args) 
    { 
     Frame rootFrame = Window.Current.Content as Frame; 

     // Do not repeat app initialization when the Window already has content, 
     // just ensure that the window is active 
     if (rootFrame == null) 
     { 
      // Create a Frame to act as the navigation context and navigate to the first page 
      rootFrame = new Frame(); 


      if (args.PreviousExecutionState == ApplicationExecutionState.Terminated) 
      { 
       //TODO: Load state from previously suspended application 
      } 

      // Place the frame in the current Window 
      Window.Current.Content = rootFrame; 
     } 

     if (rootFrame.Content == null) 
     { 
      var setup = new Setup(rootFrame); 
      setup.Initialize(); 
     } 
     await Task.CompletedTask; 
    } 

Это сделал трюк! Уверен, у меня все еще есть способ пойти (я считаю, что у Template10 есть собственный способ восстановления состояния, поэтому я, вероятно, не должен здесь это делать) ...

но это, по крайней мере, изменило, наконец, привело меня к рабочее приложение. ЕСЛИ вы знаете больше о том, что я делаю неправильно здесь, или что я должен делать, ваши комментарии были бы очень благодарны, спасибо!

 Смежные вопросы

  • Нет связанных вопросов^_^