6

私は現在、タブ コントロールで作業しており、リージョンを作成したので、それがホストになります。

私がやろうとしているのは、同じビューをリージョンに 2 回追加することです..理由を尋ねるかもしれません。これは、アプリケーションが単純なチャット アプリになるためです。ビューには多くのインスタンスがありますが、それぞれに異なる情報が含まれます。

これまでの私のコード;;

        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 に答える