im은 Silverlight 3 베타 탐색 응용 프로그램을 개발 중이므로 프리즘 및 물건을 사용하여 MVVM 패턴 :) (all-in-one viewmodel)을 약간 변형했습니다.ViewModel의 Silverlight 3 Beta, NavigationService
질문 : 어떻게 짧은 긴 이야기를 잘라 지금의 ViewModel
의 다른 "NavigationPage"로 이동 마십시오 뷰 모델은 페이지 리소스로 선언됩니다.
<navigation:Page.Resources>
<mvvm:LoginModel x:Key="DataSource" d:IsDataSource="True"></mvvm:LoginModel>
</navigation:Page.Resources>
그리고 명령이 내가 좋아하는 뷰 모델 어디서나 이동하려고하면
<Button x:Name="LoginButton" Width="100" Margin="8" Content="Login"
prism:Click.Command="{Binding LoginCommand}"/>
지금 너무
this.NavigationService.Navigate(new Uri("/Views/About.xaml", UriKind.Relative));
Navigationservice가 null의 뷰 모델로 모든 것을 wireup하는 데 사용됩니다, 나는 주변을 둘러 보았고 네비게이션 0.3을 사용하여 설명하는 this 기사를 발견했다. 이것은 내비게이션 컨트롤이 존재하지 않았을 때 sl2 일에 다시 만들어졌다. elix의 모델이 잘 작동하고 viewmodel에 INavigationAware를 구현하면 NavigationContext에 액세스 할 수 있고 필요한 모든 작업을 수행 할 수 있습니다. 헬릭스를 시도하고 작동합니다.
SL3에는 내비게이션 지원 기능이 내장되어있어 말하자면 나선형 기능과 정확히 일치합니다. 그래서 제 3 자 프레임 워크를 사용하고 싶지 않습니다. 대신 내장 된 sl3 기능을 사용하는 것을 선호합니다.
나선의 INavigationAware 인터페이스를 에뮬레이트하는 SL3에는 어떤 것이 있습니까?
100 % 동의합니다. ViewModel이 내비게이션을 요청할 때 발생하는 이벤트입니다. 뷰에서부터, 저는 이전 버전의 솔루션처럼 페이지 리소스에서 viewmodel에 액세스해야합니다.이 경우에는 ViewModel에 탐색 서비스를 추가하지 말고보기 만하십시오. 사건을 경청하고 조종 할 수있게, 맞습니까? – Neil
네, 당신은 그것을 가지고 있습니다 ... NavigationService 같은 것을 뷰 모델에 전달할 필요가 없습니다. –