私はSilverlight 3ベータ版のナビゲーションアプリケーションを開発していますので、プリムを使用して、MVVMパターン:)(オールインワンビューモデル)をわずかに変更しました。Silverlight 3 Beta、NavigationService in ViewModel
質問:どのように私は長い話を短くカットするために今のviewmodel
に異なる「NavigationPage」に移動しない、のviewmodelは、ページのリソースとして宣言されています。
<navigation:Page.Resources>
<mvvm:LoginModel x:Key="DataSource" d:IsDataSource="True"></mvvm:LoginModel>
</navigation:Page.Resources>
そしてコマンドが、私はそう
this.NavigationService.Navigate(new Uri("/Views/About.xaml", UriKind.Relative));
のNavigationServiceがnullのようなのviewmodelのどこにでも移動しようとした場合のviewmodel
今<Button x:Name="LoginButton" Width="100" Margin="8" Content="Login"
prism:Click.Command="{Binding LoginCommand}"/>
ですべてをwireupするために使用され、私は周りを見回して、ナビゲーションのためにヘリックス0.3を使用することを説明しているthisの記事を見つけました。これは、ナビゲーションコントロールが今まで存在していなかったsl2日に構築されましたelixのモデルはうまく動作し、ビューモデルにINavigationAwareを実装することで、NavigationContextにアクセスし、必要なものを何でも実行できます。ヘリックスを試してみました。
SL3には組み込みのナビゲーションサポートが付属しているので、まさにヘリックスの機能と同じです。だから私はサードパーティのフレームワークを使いたくないのですが、代わりにsl3の組み込み機能を使うのが好きです。
ヘリックスのINavigationAwareインターフェイスをエミュレートするSL3には何かがありますか?
私は100%合意しました。 ViewModelがナビゲーションを要求したときに発生するイベント、次にViewから、ViewModelにナビゲーションサービスを追加するのではなく、ViewリソースにViewModelにアクセスする必要があります(以前のソリューションのように)イベントを聞いて、うまくナビゲートするには正しいのですか? – Neil
うん、あなたはそれを持っています... NavigationServiceのようなものをビューモデルに渡す必要はありません。 –