NavigationService.Navigate выдает исключение при вызове в Prism для UWP

Я использую Prism для UWP, и я классифицировал свое приложение из PrismUnityApplication. Я переопределил OnLaunchApplicationAsync, и я пытаюсь позвонить,

NavigationService.Navigate("HighlightsView", null); 

При вызове программа выдает исключение,

{"The page name HighlightsView does not have an associated type in namespace Panda.UWP.Views\r\nParameter name: pageToken"}

У меня есть папка с именем Views, и у меня есть представление с именем HighlightsView в пространстве имен Panda.UWP.Views.

Есть ли здесь соглашение об именах? Потому что, если я переименую свой вид из HighlightsView в HighlightsPage, то все будет работать нормально!

2 ответа

Решение

Есть ли здесь соглашение об именах?

Короткий ответ: да. Prism для среды выполнения Windows указывает ViewModelLocator объект, который может использоваться для управления созданием моделей представлений и их ассоциаций с представлениями. Преимущество этого подхода состоит в том, что существует один класс, отвечающий за создание экземпляров модели представления.

ViewModelLocator класс использует прикрепленное свойство, AutoWireViewModel, чтобы связать модели представления с представлениями, если для этого свойства установлено значение True. Для получения более подробной информации о соглашении, пожалуйста, обратитесь к техническому блогу Дейва:

  • Модели представлений находятся в той же сборке, что и типы представлений.

  • Представления находятся в дочернем пространстве имен.Views.

  • Просмотр имен заканчивается "Страница".

  • Модели представлений находятся в дочернем пространстве имен.ViewModels.

  • Названия моделей представлений соответствуют именам представлений и заканчиваются "ViewModel".

Блог также содержит информацию о том, как переопределить соглашения Prism по умолчанию, на которые вы можете ссылаться. Блог Брайана также описывает похожие вещи о соглашении и о том, как его изменить.

Простое решение - переименовать HighlightsView.xaml в HighlightsViewPage.xaml

Другие вопросы по тегам