#c# #wpf #prism
#c# #wpf #prism
Вопрос:
Я изучаю Prism и не понимаю, как осуществляется навигация с помощью URI. В этом примере с документацией код на github использует:
private void Button_Click(object sender, RoutedEventArgs e)
{
this.regionManager.RequestNavigate(RegionNames.MainContentRegion, calendarViewUri);
}
URI объявляется следующим образом:
private static Uri calendarViewUri = new Uri("CalendarView", UriKind.Relative);
В коде объявлен CalendarView.xaml, но как создается ссылка?
Prism просто смотрит на URI и пытается найти подходящее имя представления, а затем загрузить его в регион?
Если мое предположение верно, нет необходимости регистрировать ссылку между URI и представлением. Но что, если представление переименовано, это означает, что навигация будет нарушена, я прав?
Ответ №1:
Что касается «недостающей ссылки», посмотрите на ViewSwitchingNavigation.Calendar/CalendarModule.cs
, это то место, где инициализируется модуль calendar, то есть где все его содержимое становится известным остальной части приложения:
this.unityContainer.RegisterTypeForNavigation<CalendarView>();
В основном здесь говорится: «когда вас попросят перейти к «CalendarView», создайте экземпляр CalendarView
«.