2

私はWPF Prismが初めてです。私の問題はこれです。

  1. リージョンがあり、このようなビューを登録します

    _container.RegisterType(typeof(Object), typeof(MgpOptions),typeof(MgpOptions).FullName);
    
    _container.RegisterType(typeof(Object), typeof(SgpOptions), typeof(SgpOptions).FullName);
    
  2. 次に、このようにナビゲートします

    _regionManager.Regions[RegionNames.AppBarRegion].NavigationService.RequestNavigate(typeof(MgpOptions).FullName);`
    
  3. 合計ボタンのクリックイベントで、次のように SgOptions ビューに移動します

    _regionManager.Regions[RegionNames.AppBarRegion].RequestNavigate(typeof(SgpOptions).FullName);
    

私の問題は、3 番目のステップが完了すると、一度に 1 つのビューだけを表示したい領域に両方のビューが表示されることです。

4

1 に答える 1

2

Prism のリージョンは、適用されているコントロールに応じて動作が異なるため、次の点を考慮してください。

  • ItemsControlを使用している場合、領域タイプAllActiveRegionがあります。これは基本的にビューを非アクティブ化しない領域であるため、すべてのビューがアクティブと見なされます。このようなシナリオでは、別のビューに移動しても、前のビューは非アクティブになりません。

代わりに、 ContentControlを使用して領域をSingleActiveRegionとして構成する必要があります。このタイプのリージョンでは、同時にアクティブにできるビューは 1 つだけです。そのため、前のビューをナビゲートすると、実際には無効になります。

ここに関連する詳細については、「プリズム領域の概要」セクションを参照してください。

于 2013-09-30T14:32:02.980 に答える