1

シェルを作成しています。XAMLのみを収容しTabControlます。ボタン クリック イベントで新しいタブを作成しようとしています。これまでに作成したコードを使用すると、ボタン クリック イベントで新しいタブを作成できますが、タブ (領域) のコンテンツは最初のタブにのみ表示され、作成される新しいタブは空です。つまり、新しく作成されたタブで同じコンテンツ (リージョン) を表示することができません...

Shell.XAML

<TabControl Name="MyTabs" 
            Prism:RegionManager.RegionName="{x:Static inf:RegionConstants.MainRegion}">
</TabControl>

UserControlタブに追加したいもの:

MainControls.XAML

<UserControl>
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>

        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions> 

        <Grid x:Name="LeftGrid" Grid.Row="0" Grid.Column="0" Prism:RegionManager.RegionName="{x:Static inf:RegionConstants.InputRegion}">

        <GridSplitter>
        <Grid x:Name="RightGrid" Grid.Row="0" Grid.Column="0" Prism:RegionManager.RegionName="{x:Static inf:RegionConstants.OutputRegion}">
    </Grid>
</UserControl>

タブを追加する機能

private void New_Tab(object sender, RoutedEventArgs e)
{
    TabItem tab = new TabItem();
    tab.Header = "New Tab";
    tab.Content = new MainControls();
    MyTabs.Items.Add(tab);
}

MainRegion登録用モジュール

class CollaboratedModule :IModule
{
    private IUnityContainer container = default(IUnityContainer);
    private IRegionManager regionManager = default(IRegionManager);

    public CollaboratedModule(IUnityContainer container, IRegionManager regionManager)
    {
        this.container = container;
        this.regionManager = regionManager;
    }

    public void Initialize()
    {
        if (this.container != default(IUnityContainer) &&
            this.regionManager != default(IRegionManager))
        {
            var IntergratedView = this.container.Resolve<MainControls>();

            this.regionManager.AddToRegion(RegionConstants.MainRegion, IntergratedView);
            this.regionManager.Regions[RegionConstants.MainRegion].Activate(IntergratedView);
        }
    }
}

同様に、登録用のモジュールInputRegionOutputRegion. このコードのどこに問題があるのか​​、どうすれば解決できるのか教えてもらえますか?

4

1 に答える 1