は...日間立ち往生したことがあり、その後、私は場合には2つのページ1を持っている問題プリズム:ViewModelLocator.AutowireViewModel =「true」の
だったものが見つかった場合しない限り、私はのNavigationServiceを解決することはできませんタブレットの場合はもう一方、電話の場合はもう1つ。名前が異なるため、ViewModelLocator.AutowireViewModelを使用してバインディングコンテキストと同じビューモデルを共有することはできません。この場合、私は各ページのビューモデルコピーを作成したくないので、古典的なバインディングコンテキストを使用しています。 私の問題は、実行すると "このオブジェクトプリズムのために定義されたパラメータのないコンストラクタがない"というエラーが表示されます。このエラーの原因は、viewModelにnavigationServiceが必要なコンストラクタがあることです。 このエラーを解決するには、ナビゲーションサービスを引数として削除する必要がありますが、ナビゲーションサービスが必要なので、ナビゲートする必要があります。
ありがとうございます。あなたは同じviewmodelを持っていることについてあなたの提案を確認するだけです。新しいMainPageViewModel()を返すことができるように、あなたのコードスニッピットであなたのロジックを意味しますか? 手作業では、INavigationServiceをコンストラクタで渡すことを意味しますか? – BraveHeart
はい、これはViewModelのインスタンスを返す場所です。問題は、あなたがINavigationServiceを作成してそれをctorに渡す責任があるということです。ここで何が行われる必要があるかはわかりますhttps://github.com/PrismLibrary/Prism/blob/master/Source/Xamarin/Prism.Unity.Forms/PrismApplication.cs#L49 –
これは私たちがViewModelLoctorを改善する理由ですインスタンスだけでなく型の登録をサポートします。私はあなたの問題を再開しました。あなたはシナリオを確認して、私にこの問題を解決させてもらえますか? –