我有与连接到它的区域的标签控制和我也得到了一个内容控制在我的选项卡控制的内容与另一区域。
我遇到的问题是 - 如果我叫RegisterViewWithRegion其添加视图到区域没有问题的(第一次是,遇到问题了,如果你换标签)。 但是,这是不是很灵活,我在寻找一个更好的方式来做到这一点。
当我看到里面IRegionManager.Regions以及 - 我只能看到两个顶级水平的区域。 我看不到我的子区域TabContentRegion。 有没有注册这个,所以我可以用通常的方法只是工作与添加的意见和激活它们的方式?
<TabControl TabStripPlacement="Left"
Width="Auto"
Height="Auto"
cal:RegionManager.RegionName="TabRegion"
Name="TabRegion"
SelectedItem="{Binding SelectedTab}">
<TabControl.ContentTemplate>
<DataTemplate>
<ContentControls:TransitionContentControl
cal:RegionManager.RegionName="TabContentRegion" />
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
这个代码将欣赏到TabRegion
public void Load()
{
IConfigurationDetailsPresentationModel convDetailsView1 =
this.Container.Resolve<IConfigurationDetailsPresentationModel>();
IRegionManager manager = this.Container.Resolve<IRegionManager>();
manager.RegisterViewWithRegion("TabRegion", () => convDetailsView1);
IConversationDetailsPresentationModel conversationDetails =
this.Container.Resolve<IConversationDetailsPresentationModel>();
manager.RegisterViewWithRegion("TabRegion", () => conversationDetails);
}
然后,这是我的代码已经被使用到实际显示在TabContentRegion视图
public IPresentationModel SelectedTab
{
get { return _selectedTab; }
set
{
_selectedTab = value;
IRegionManager service = this.Container.Resolve<IRegionManager>();
if (service != null)
{
service.RegisterViewWithRegion(
"TabContentRegion",
() => _selectedTab.View);
}
}
}
正如你所看到的 - 这是一个有点janky和完全不是那么回事。 任何想法,我做错了什么?
谢谢你的帮助!