2016-08-18 10 views
2

autofacと使用しており、ビュー間の移動に問題があります。私が持っているのは、私が残しておきたいときだけ、私が残しておきたいビューです。次回は、このビューの新しいバージョンを作成したいと思います。Prism Request新しいビューに移動

負荷で、私は次のコードを持っているIModuleを、会員登録を

_regionManager.RegisterViewWithRegion(RegionNames.MainRegion, 
             typeof(DxfDisplay.Views.DxfDisplay)); 

これは私のビューを登録し、システムが初期負荷で動作し、私は、ビューモデルのINavigationAwareIRegionMemberLifetimeインタフェースを実装し、実装public bool KeepAlive => false;を持っていますIRegionMemberLifetime私の意見は私が終わったときに処分されるように。

私は離れて、このビューから移動すると、すべてが大丈夫ですが、私はビューが開かれていないと、ビューモデルのコンストラクタが呼び出されない

_regionManager.RequestNavigate(RegionNames.MainRegion, 
           new Uri("DxfDisplay", UriKind.Relative), parameters); 

を使用して、ビューにナビゲートするナビゲートしようとしたとき。ナビゲーションが正しく機能するようにするには、再度リージョンでビューに登録する必要があります。または、KeepAliveをtrueに変更すると元のビューに戻ることができますが、INavigationAware.IsNavigationTargetがfalseを返した場合は新しいビューを生成できません。

私の質問は、_regionManager.RequestNavigateを呼び出すと、ビューの新しいインスタンスを作成して表示するように、リージョンマネージャにビューを登録する方法です。私は何かをシンプルに見逃しているように感じ、ただ見落としています。

答えて

2

_builder.RegisterTypeForNavigation<DxfDisplay.Views.DxfDisplay>();

+0

ありがとうございます。拡張メソッドの名前空間を決して見ないでください。私はそれが容易でなければならないことを知っていた。 –

関連する問題