0
我有一個選項卡控件,它附加了一個區域,並且我的選項卡控件內容還與另一個區域有內容控件。在選項卡控件中的WPF Prism區域不在區域列表中
我遇到的問題是 - 如果我調用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);
}
}
}
顯示視圖,你可以在代碼看 - 這有點瘋狂,不太合適。任何想法我做錯了什麼?
感謝您的幫助!