我在 shell 中定义了两个区域:MainRegion 和 ToggleRegion。切换区域包含一个按钮,单击该按钮我想更改主区域中的区域。
这是我在 shell 中注册区域的 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 我在 Region 中注入视图的位置
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));
}
在运行应用程序时,我可以看到 MainRegion 和 ToggleRegion 中加载了 MainView 和 ToggleView。但是当我单击切换区域中的按钮以更改主区域中的视图时。主要区域视图没有改变。
我的按钮单击事件中的代码
{
IRegion region = regionManager.Regions["MainRegion"];
var view = region.Views.SingleOrDefault();
region.Remove(view);
regionManager.RegisterViewWithRegion("MainRegion", typeof(ViewOnButtonClick));
region.Activate(view);
}
在调试时,我可以看到区域首先删除 MainView,然后激活 viewonbuttonclick,但同样没有反映在我的 xaml 视图中。
我错过了什么?