Windows Phone 7
[wp7] Navigate를 Page Control 이외에서 하기
동동(이재동)
2010. 8. 9. 16:33
MVVM을 쓰면서 페이지 이동을 할때에는 꼭 Page 에서 해야만 했다.
즉 뷰딴에서만 이동이 가능했다.
예를 들면
var uri = new Uri(string.Format("/TypenWork;component/Views/OptionPage.xaml"), UriKind.RelativeOrAbsolute);
NavigationService.Navigate(uri);
이렇게 하여야만 했지만
그래서 꼭 behind딴에서 코딩을 하여 mvvm 고유의 깔끔함이 없어졌다.
하지만 페이지 이동을 딴 곳 즉 ViewModel 이나 Model쪽에서 하고 싶을때가 많다(거의 90%)
그럴때는 어떻게 할까... 언제까지 datacontext를 형변환 하여 사용할것인가?
팀장님이 발견한 방법이다
var temp = App.Current.RootVisual as PhoneApplicationFrame;
temp.Navigate(new Uri("/UnitConverter;component/Views/MainListView.xaml",UriKind.RelativeOrAbsolute));
이렇게 app의 RootVisual를 PhoneApplicationFrame을 캐스팅하여 사용하는 방법이다 굿~^^
이제 자유롭게 어디서든 Navigate 를 사용할수 있다.