Silverlight 3 ベータ ナビゲーション アプリケーションを開発しているので、MVVM パターンのわずかなバリエーションを使用しました :) (オールインワン ビューモデル)、プリズムなどを使用します。
質問: ビューモデルで別の「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です。周りを見回して、ナビゲーションにヘリックス0.3を使用する方法について説明しているこの記事を見つけました。これは、ナビゲーションコントロールが存在しなかったsl2時代に構築されました。現在、ヘリックスのモデルはうまく機能し、INavigationAwareを実装することでビューモデルを使用すると、NavigationContext にアクセスできるようになり、必要なことは何でも実行できます。らせんを試してみましたが、動作します。
SL3 には組み込みのナビゲーション サポートが付属しており、いわば helix とまったく同じことを行います。そのため、サードパーティのフレームワークを使用したくありません。代わりに、組み込みの sl3 機能を使用することを好みます。
SL3 にヘリックスの INavigationAware インターフェイスをエミュレートするものはありますか?