6

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

编辑:我的实际问题是......是否可以在一个区域内有重复的视图?当我目前尝试它时,我得到一个关于它已经注册的异常。我真正需要的是绕过它或者可能创建一个允许它的区域。

谢谢你的帮助!!

干杯。圣。

4

2 回答 2

2

试试这个。

IRegion TabRegion =  manager.Regions["TabRegion"];

tabRegion.Add(convDetailsView1);
tabRegion.Add(convDetailsView2);
于 2012-04-17T12:32:46.927 回答
0

试试这个解决方案:

IRegion TabRegion =  manager.Regions["TabRegion"];
tabRegion.Add(convDetailsView1).AdToRegion("make your region here",convDetailsView2);
于 2015-05-13T16:47:33.517 回答