WPF PRISMアプリケーションで2つのビュー間でナビゲーションパラメータを渡すことに苦労しています。プリズムMVVM INavigationAwareイベントプリズムが発射されない
私のアプリケーションの基本的な構造は以下の通りです: 私はviewmodelsフォルダを持っています。アプリケーションのすべての "セクション"のためのフォルダを持っています。注文、プロジェクト
同じことがビューに適用されます。
私はordersフォルダのビューからProjectsフォルダのビューにナビゲートしています。
実際のナビゲーションが動作していて、アプリケーションが2番目のviewmodelのコンストラクタでブレークポイントにヒットしましたが、INavigationAwareインターフェイスメソッドは呼び出されません。
これは、フォルダのために異なる名前空間に存在するviews/viewmodelsと関係があるかどうかわかりません。ここで
は、私が使用する重要なコードスニペットです:
ブートストラップ
Container.RegisterType(typeof(Object), typeof(ConfirmOrders), "Orders.ConfirmOrders");
Container.RegisterType(typeof(Object), typeof(QuotedCosts), "Projects.QuotedCosts");
ナビゲーションQuotedCostsにConfirmOrdersから
NavigationParameters par = new NavigationParameters();
par.Add("ProjectID", ProjID);
_regionManager.RequestNavigate("ContentRegion", "Projects.QuotedCosts", par);
QuotedCostsは呼び出されません飽きない玉葉ナビゲーションイベントをViewModelに
public class QuotedCostsViewModel : ViewModelBase, INavigationAware
{
private IProjectService _projectService;
private int ProjectID { get; set; }
public mProject CurrProject { get; protected set; }
public QuotedCostsViewModel(IProjectService projectService)
{
_projectService = projectService;
CurrProject = _projectService.GetProjectDetails(ProjectID);
}
public void OnNavigatedTo(NavigationContext navigationContext)
{
ProjectID = int.Parse(navigationContext.Parameters["ProjectID"].ToString());
}
public bool IsNavigationTarget(NavigationContext navigationContext)
{
return true;
}
public void OnNavigatedFrom(NavigationContext navigationContext)
{
}
}
あなたはパラメータを送信しているところからのコードを投稿してくださいでしたあなたが使用しているウリクエリ.. – stylishCoder
、すなわちそれは、2番目のコードブロックであります私はUriクエリを使用せず、むしろナビゲーションパラメータのオーバーロードを使用しています – ThatChris
コードはよく見えます@ThatChrisは名前空間を置き換えることによって識別する必要があります..それ以外のヒットと試用版の問題 – stylishCoder