1

我正在创建一个外壳。XAML其中只有一个TabControl。我正在尝试在按钮单击事件上创建新选项卡。使用到目前为止我编写的代码,我可以在按钮单击事件上创建新选项卡,但选项卡(一个区域)的内容仅显示在第一个选项卡上,并且创建的新选项卡是空的。即我无法在新创建的选项卡中显示相同的内容(区域)...

壳牌.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

0

试试这种方式

regionManager.RegisterViewWithRegion(RegionConstants.MainRegion, () => IntergratedView);
于 2013-07-05T11:07:19.337 回答