2016-07-18 62 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 –