我目前正在使用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