protected virtual void OnRootFrameNavigated(object sender, NavigationEventArgs e) { var page = e.Content as PhoneApplicationPage; if (page != null) { ViewModelBase viewModel = null; if (page.DataContext as ViewModelBase == null) { var pageType = page.GetType(); if (PageToViewModelMap.ContainsKey(pageType)) { viewModel = GetViewModelForType(pageType); page.DataContext = viewModel; SetOnLoadHandler(page, viewModel); } } else { viewModel = page.DataContext as ViewModelBase; } if (viewModel != null) { viewModel.OnNavigate(); } } }
public void InitializeWithGivenMap(PhoneApplicationFrame rootFrame, IDictionary <Type, Type> pageToViewModelMap) { Initialize(rootFrame); foreach (var pair in pageToViewModelMap) { PageToViewModelMap.Add(pair.Key, pair.Value); } }