2016-07-18 57 views
0

在WPF +棱镜,我怎么能浏览到一个强类型的对象使用视图模型类型:WPF棱镜RegisterTypeForNavigation与视图模型类型

_navigationService.NavigateAsync<MainPageviewModel>(); 

对于这个工作,我想我需要是这样的:

Container.RegisterTypeForNavigation<MainPage, MainPageViewModel>(); 

回答

2

你只需要这个

Container.RegisterTypeForNavigation<MainPage>(); 

要能导航,那么你可能想viewmodellocat或(在xaml上)为您创建视图模型。

这是你如何发送参数

var navigationParameters = new NavigationParameters(); 

navigationParameters.Add("ParameterKey","TheParameter") 

RegionManager.RequestNavigate("YouRegionName", new Uri(nameOf(MainPage), UriKind.Relative), navigationParameters); 

当您收到他们,你必须检查navigationContext中的OnNavigatedTo方法和关键访问它们。

+1

您甚至不需要向容器注册ViewModel,ViewModelLocator使用命名约定来解析ViewModel。所以如果我有一个Views/MainView.xaml,ViewModels/MainViewModel.cs会自动解析。 –

+0

@StephenWilson感谢您的评论,我不知道你不必注册ViewModel的容器。我现在必须重新查看我自己的代码,因为我有很多以这种方式注册的视图模型和接口。如果没有必要,那么很棒:)再次感谢你。 PS。我已经更新了答案。 – adminSoftDK

+0

谢谢你们俩! RequestNavigate如何看起来像这样?理想情况下,我想通过视图模型类型。我找不到简单的例子。我看到我想要为Xamarin Forms实现,但不是WPF https://github.com/PrismLibrary/Prism/blob/master/Documentation/Xamarin.Forms/3-NavigationService.md –