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 를 사용할수 있다.
'Windows Phone 7' 카테고리의 다른 글
[wp7] 같은 데이터 비교했지만 메모리저장 위치가 달라서 틀리다고 나올때 (0) | 2010.08.16 |
---|---|
[wp7] 윈폰에서 전화가 울리거나 검색에 갔을때 저장? (0) | 2010.08.13 |
[wp7] 리소스 파일 적용하기 (지역화) (2) | 2010.07.26 |
[wp7] Windows 7 Phone SDK Beta 릴리즈 (0) | 2010.07.13 |
[wp7] 유동적인 Button 에서 Template 입히기 (0) | 2010.07.09 |