2012-12-04 15 views
6

バインドされたRegionNameに基づいてリージョンをロードする必要があります。何かのようにWPF + PRISM実行時にリージョンを変更する方法

<ContentControl cal:RegionManager.RegionName="{Binding CustomRegionName}" 
        Grid.Column="2"/> 

すべての地域が正しく登録されています。 CustomRegionNameの値を変更すると、領域は決して変更されません。これどうやってするの?

答えて

5

この現象は、領域が既にビジュアルツリーに読み込まれているために発生します。リージョン名を維持しながら複数のビューをリージョンにロードするように、アプリを少し変更できますか?あなたがどこか特定のビューを表示したい場所をビューが地域で活躍している選択して、動的に すなわち

IRegion region = regionManager.Regions["RegionName"]; 
object view = container.Resolve<SomeView>(); 
object view2 = container.Resolve<SomeView2>(); 

region.Add(view); 
region.Add(view2); 

その後IRegionViewManagerとIRegionインターフェースを使用してコンテンツコントロールの表示を変更することができるだろう。この方法それ以外の場合 IRegionManagerを注入してから

region.Activate(whichever view); 
+0

ありがとうございます。私はこれを実装するつもりです。 –

+0

それは素晴らしい作品です。おかげでたくさんの男 –

関連する問題