シェルで MainRegion と ToggleRegion の 2 つの領域を定義しています。トグル領域には、そのボタンをクリックすると、メイン領域の領域を変更したいボタンが含まれています。
これは、シェルに領域を登録するための私の xaml コードです。
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" ></RowDefinition>
<RowDefinition Height="30"></RowDefinition>
</Grid.RowDefinitions>
<ContentControl Grid.Row="0" Regions:RegionManager.RegionName="MainRegion"></ContentControl>
<ContentControl Grid.Row="1" Regions:RegionManager.RegionName="ToggleRegion"></ContentControl>
</Grid>
私のBootstrapperは、リージョンにビューを挿入するMainModuleを追加します
protected override IModuleCatalog CreateModuleCatalog()
{
var catalog = new ModuleCatalog();
catalog.AddModule(typeof (MainModule));
return catalog;
}
私の MainModule クラス
public void Initialize()
{
regionManager.RegisterViewWithRegion("MainRegion", typeof(MainView));
regionManager.RegisterViewWithRegion("ToggleRegion", typeof(ToggleView));
}
アプリケーションを実行すると、MainView と ToggleView が MainRegion と ToggleRegion に読み込まれていることがわかります。しかし、トグル領域のボタンをクリックすると、メイン領域のビューが変更されます。メイン リージョン ビューは変更されません。
ボタンクリックイベントのコード
{
IRegion region = regionManager.Regions["MainRegion"];
var view = region.Views.SingleOrDefault();
region.Remove(view);
regionManager.RegisterViewWithRegion("MainRegion", typeof(ViewOnButtonClick));
region.Activate(view);
}
デバッグ時に、領域が最初に MainView を削除してから viewonbuttonclick をアクティブにしていることがわかりますが、同じことが xaml ビューに反映されていません。
何が欠けていますか?