0

Xamarin Forms と Prism を使用しています。ページ間のナビゲーションは、Prism INavigationService を使用して行います。独自のビュー モデルを持つ多くの子 ContentViews を持つ Xamarin Forms ContentPage があります。子 ContentView をクリックすると、子 ContentView のいくつかのプロパティを持つ別の ContentPage に移動したいと思います。親ビュー モデル INavigationService を子 ContentView ビュー モデルに渡すことができるかどうかを知りたいですか? または、私の要件を満たすために使用できる他のベストプラクティスはありますか?

4

2 に答える 2

0

あなたがする必要があるのは、通常はApp.xamlであるprismApplcationにページを登録することです

private INavigationService _navigationService;
public MyPage(INavigationService navigationService)
{
   _navigationService = navigationService 
}

または、ページの ViewModel で同じことを行うこともできますが (推奨)、ページの Xaml ファイルで Autolocater を有効にする必要があります。

これは、コンテンツ ページ間を移動する場合に当てはまります。ただし、あなたの場合、マルチビューがあり、各ビューには独自のビューモデルがありますが、ビューは基本的にページからビューモデルを共有できるため、ルールに違反していますが、このようにすることを主張する場合、私の唯一のアドバイスコードを見ずに、ページを登録したのと同じコンテナーを使用して、各ビューのビューモデルを登録することです。そのために RegisterType<>()を使用すると、Inavigationservice が注入されることがわかります。繰り返しになりますが、コードの設計を変更した方がよいと思います。

于 2016-11-28T12:07:17.270 に答える