public static void OnViewCreate <TViewModel>(this IMvxWindowsPhoneView <TViewModel> phoneView, Uri navigationUri) where TViewModel : class, IMvxViewModel { var view = phoneView as IMvxView <TViewModel>; view.OnViewCreate(() => { return(phoneView.LoadViewModel(navigationUri)); }); }
private static TViewModel LoadViewModel <TViewModel>(this IMvxWindowsPhoneView <TViewModel> phoneView, Uri navigationUri) where TViewModel : class, IMvxViewModel { var translatorService = phoneView.GetService <IMvxWindowsPhoneViewModelRequestTranslator>(); var viewModelRequest = translatorService.GetRequestFromXamlUri(navigationUri); if (viewModelRequest.ClearTop) { phoneView.ClearBackStack(); } var loaderService = phoneView.GetService <IMvxViewModelLoader>(); var viewModel = loaderService.LoadViewModel(viewModelRequest); return((TViewModel)viewModel); }