我目前正在使用Tab控件并创建了一个区域,因此它将成为我的主机。WPF Prism如何在区域内重复视图
我想要做的是将同一视图添加到区域两次..你可能会问为什么?因为应用程序正在进行一个简单的聊天应用程序 - 视图中有很多实例,但每个实例都有不同的信息。
我的代码至今;;
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。
我不知道你在问什么。你不是只为自己的问题写出自己的答案。 “区域附加到UI Content元素,如** ContentControl **,** ItemsControl **,** TabControl **或客户控件,并管理UI元素的内容”。所以是的,它应该工作。 – 2012-04-17 11:17:29
@Rikkos - 请参阅我的更新评论..我基本上寻找的是在我的区域内有重复的意见! – Steoates 2012-04-17 11:53:18
只是一个故障排除的想法,你有没有尝试过GetHashCode()来看看TransientLifetimeManager是否给你不同的实例? – 2012-04-17 15:28:48