我目前正在使用Tab控件并创建了一个区域,因此它将成为我的主机。
我要做的是将相同的视图添加到一个区域两次..你可能会问为什么?因为应用程序是一个简单的聊天应用程序 - 视图中会有很多实例,但每个实例都有不同的信息。
到目前为止我的代码;; IConversationDetailsPresentationModel convDetailsView1 =
this.Container.Resolve<IConversationDetailsPresentationModel>();
IRegionManager manager = this.Container.Resolve<IRegionManager>();
manager.RegisterViewWithRegion("TabRegion", () => convDetailsView1);
IConversationDetailsPresentationModel convDetailsView2 =
this.Container.Resolve<IConversationDetailsPresentationModel>();
manager.RegisterViewWithRegion("TabRegion", () => convDetailsView2);
我的观点是如此一致地注册的;;
this.Container.RegisterType<IConversationDetailsPresentationModel, ConversationDetailsPresentationModel>(
new TransientLifetimeManager());
this.Container.RegisterType<IConversationDetailsView, ConversationDetailsView>(
new TransientLifetimeManager());
另外,我的XAML
<TabControl TabStripPlacement="Left"
Width="Auto"
Height="Auto"
cal:RegionManager.RegionName="TabRegion"
Name="TabRegion"
SelectedItem="{Binding SelectedTab}">
<TabControl.ContentTemplate>
<DataTemplate>
<ContentControl cal:RegionManager.RegionName="TabContentRegion">
</ContentControl>
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
编辑:我的实际问题是这个..是否有可能在一个区域内有重复的视图?当我尝试它时,我得到一个关于它已经被注册的例外..我真正需要的是绕过这个或者可能创建一个允许它的区域。
感谢您的帮助!!
欢呼声。 STE。
答案 0 :(得分:2)
试试这个。
IRegion TabRegion = manager.Regions["TabRegion"];
tabRegion.Add(convDetailsView1);
tabRegion.Add(convDetailsView2);
答案 1 :(得分:0)
试试这个解决方案:
IRegion TabRegion = manager.Regions["TabRegion"];
tabRegion.Add(convDetailsView1).AdToRegion("make your region here",convDetailsView2);